summaryrefslogtreecommitdiffstats
path: root/src/arrow/dev/tasks/linux-packages/helper.rb
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:54:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:54:28 +0000
commite6918187568dbd01842d8d1d2c808ce16a894239 (patch)
tree64f88b554b444a49f656b6c656111a145cbbaa28 /src/arrow/dev/tasks/linux-packages/helper.rb
parentInitial commit. (diff)
downloadceph-upstream/18.2.2.tar.xz
ceph-upstream/18.2.2.zip
Adding upstream version 18.2.2.upstream/18.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/arrow/dev/tasks/linux-packages/helper.rb')
-rw-r--r--src/arrow/dev/tasks/linux-packages/helper.rb70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/arrow/dev/tasks/linux-packages/helper.rb b/src/arrow/dev/tasks/linux-packages/helper.rb
new file mode 100644
index 000000000..30ac3b898
--- /dev/null
+++ b/src/arrow/dev/tasks/linux-packages/helper.rb
@@ -0,0 +1,70 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+module Helper
+ module ApacheArrow
+ private
+ def detect_release_time
+ release_time_env = ENV["ARROW_RELEASE_TIME"]
+ if release_time_env
+ Time.parse(release_time_env).utc
+ else
+ latest_commit_time(arrow_source_dir) || Time.now.utc
+ end
+ end
+
+ def arrow_source_dir
+ File.join(__dir__, "..", "..", "..")
+ end
+
+ def detect_version(release_time)
+ version_env = ENV["ARROW_VERSION"]
+ return version_env if version_env
+
+ pom_xml_path = File.join(arrow_source_dir, "java", "pom.xml")
+ pom_xml_content = File.read(pom_xml_path)
+ version = pom_xml_content[/^ <version>(.+?)<\/version>/, 1]
+ formatted_release_time = release_time.strftime("%Y%m%d")
+ version.gsub(/-SNAPSHOT\z/) {"-dev#{formatted_release_time}"}
+ end
+
+ def detect_env(name)
+ value = ENV[name]
+ return value if value and not value.empty?
+
+ dot_env_path = File.join(arrow_source_dir, ".env")
+ File.open(dot_env_path) do |dot_env|
+ dot_env.each_line do |line|
+ case line.chomp
+ when /\A#{Regexp.escape(name)}=(.*)/
+ return $1
+ end
+ end
+ end
+ raise "Failed to detect #{name} environment variable"
+ end
+
+ def detect_repo
+ detect_env("REPO")
+ end
+
+ def docker_image(os, architecture)
+ architecture ||= "amd64"
+ "#{detect_repo}:#{architecture}-#{os}-package-#{@package}"
+ end
+ end
+end