17119: implement review feedback.
[arvados.git] / services / api / lib / app_version.rb
index 2f235d1eabe35cf388278435459ae78947107cde..335608b2b6611eaac1eba516219d457f549c6862 100644 (file)
@@ -1,3 +1,7 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
 # If you change this file, you'll probably also want to make the same
 # changes in apps/workbench/lib/app_version.rb.
 
@@ -11,6 +15,7 @@ class AppVersion
 
   def self.forget
     @hash = nil
+    @package_version = nil
   end
 
   # Return abbrev commit hash for current code version: "abc1234", or
@@ -30,7 +35,7 @@ class AppVersion
     if @hash.nil? or @hash.empty?
       begin
         local_modified = false
-        git("status", "-s") do |git_pipe|
+        git("status", "--porcelain") do |git_pipe|
           git_pipe.each_line do |_|
             local_modified = true
             # Continue reading the pipe so git doesn't get SIGPIPE.
@@ -49,4 +54,18 @@ class AppVersion
 
     @hash || "unknown"
   end
+
+  def self.package_version
+    if (cached = Rails.configuration.package_version || @package_version)
+      return cached
+    end
+
+    begin
+      @package_version = IO.read(Rails.root.join("package-build.version")).strip
+    rescue Errno::ENOENT
+      @package_version = "unknown"
+    end
+
+    @package_version
+  end
 end