]> gitweb.fluxo.info Git - leap/leap_cli.git/commitdiff
log the version and git info if log level >= 2
authorelijah <elijah@riseup.net>
Wed, 26 Jun 2013 03:46:26 +0000 (20:46 -0700)
committerelijah <elijah@riseup.net>
Wed, 26 Jun 2013 03:46:26 +0000 (20:46 -0700)
lib/leap_cli/commands/pre.rb
lib/leap_cli/util.rb

index 291ad2ac7b547691c918329f5b37ac20246987ef..cedce7f5cde1910b8fdb87266e8b3220ab2a60e5 100644 (file)
@@ -2,77 +2,98 @@
 #
 # check to make sure we can find the root directory of the platform
 #
-module LeapCli
-  module Commands
-
-    desc 'Verbosity level 0..5'
-    arg_name 'LEVEL'
-    default_value '1'
-    flag [:v, :verbose]
-
-    desc 'Override default log file'
-    arg_name 'FILE'
-    default_value nil
-    flag :log
-
-    desc 'Display version number and exit'
-    switch :version, :negatable => false
-
-    desc 'Skip prompts and assume "yes"'
-    switch :yes, :negatable => false
-
-    pre do |global,command,options,args|
-      #
-      # set verbosity
-      #
-      LeapCli.log_level = global[:verbose].to_i
-      if LeapCli.log_level > 1
-        ENV['GLI_DEBUG'] = "true"
-      else
-        ENV['GLI_DEBUG'] = "false"
-      end
+module LeapCli; module Commands
 
-      #
-      # load Leapfile
-      #
-      unless LeapCli.leapfile.load
-        bail! { log :missing, 'Leapfile in directory tree' }
-      end
-      Path.set_platform_path(LeapCli.leapfile.platform_directory_path)
-      Path.set_provider_path(LeapCli.leapfile.provider_directory_path)
-      if !Path.provider || !File.directory?(Path.provider)
-        bail! { log :missing, "provider directory '#{Path.provider}'" }
-      end
-      if !Path.platform || !File.directory?(Path.platform)
-        bail! { log :missing, "platform directory '#{Path.platform}'" }
-      end
+  desc 'Verbosity level 0..5'
+  arg_name 'LEVEL'
+  default_value '1'
+  flag [:v, :verbose]
 
-      if LeapCli.leapfile.platform_branch && LeapCli::Util.is_git_directory?(Path.platform)
-        branch = LeapCli::Util.current_git_branch(Path.platform)
-        if branch != LeapCli.leapfile.platform_branch
-          bail! "Wrong branch for #{Path.platform}. Was '#{branch}', should be '#{LeapCli.leapfile.platform_branch}'. Edit Leapfile to disable this check."
-        end
-      end
+  desc 'Override default log file'
+  arg_name 'FILE'
+  default_value nil
+  flag :log
+
+  desc 'Display version number and exit'
+  switch :version, :negatable => false
+
+  desc 'Skip prompts and assume "yes"'
+  switch :yes, :negatable => false
+
+  pre do |global,command,options,args|
+    #
+    # set verbosity
+    #
+    LeapCli.log_level = global[:verbose].to_i
+    if LeapCli.log_level > 1
+      ENV['GLI_DEBUG'] = "true"
+    else
+      ENV['GLI_DEBUG'] = "false"
+    end
+
+    #
+    # load Leapfile
+    #
+    unless LeapCli.leapfile.load
+      bail! { log :missing, 'Leapfile in directory tree' }
+    end
+    Path.set_platform_path(LeapCli.leapfile.platform_directory_path)
+    Path.set_provider_path(LeapCli.leapfile.provider_directory_path)
+    if !Path.provider || !File.directory?(Path.provider)
+      bail! { log :missing, "provider directory '#{Path.provider}'" }
+    end
+    if !Path.platform || !File.directory?(Path.platform)
+      bail! { log :missing, "platform directory '#{Path.platform}'" }
+    end
 
-      #
-      # set log file
-      #
-      LeapCli.log_file = global[:log] || LeapCli.leapfile.log
-      LeapCli::Util.log_raw(:log) { $0 + ' ' + ORIGINAL_ARGV.join(' ')}
-
-      #
-      # load all the nodes everything
-      #
-      manager
-
-      #
-      # check requirements
-      #
-      REQUIREMENTS.each do |key|
-        assert_config! key
+    if LeapCli.leapfile.platform_branch && LeapCli::Util.is_git_directory?(Path.platform)
+      branch = LeapCli::Util.current_git_branch(Path.platform)
+      if branch != LeapCli.leapfile.platform_branch
+        bail! "Wrong branch for #{Path.platform}. Was '#{branch}', should be '#{LeapCli.leapfile.platform_branch}'. Edit Leapfile to disable this check."
       end
+    end
+
+    #
+    # set log file
+    #
+    LeapCli.log_file = global[:log] || LeapCli.leapfile.log
+    LeapCli::Util.log_raw(:log) { $0 + ' ' + ORIGINAL_ARGV.join(' ')}
+    log_version
 
+    #
+    # load all the nodes everything
+    #
+    manager
+
+    #
+    # check requirements
+    #
+    REQUIREMENTS.each do |key|
+      assert_config! key
     end
 
   end
-end
+
+  private
+
+  #
+  # add a log entry for the leap command and leap platform versions
+  #
+  def log_version
+    if LeapCli.log_level >= 2
+      str = "leap command v#{LeapCli::VERSION}"
+      cli_dir = File.dirname(__FILE__)
+      if Util.is_git_directory?(cli_dir)
+        str << " (%s %s)" % [Util.current_git_branch(cli_dir), Util.current_git_commit(cli_dir)]
+      end
+      log 2, str
+      str = "leap platform v#{Leap::Platform.version}"
+      if Util.is_git_directory?(Path.platform)
+        str << " (%s %s)" % [Util.current_git_branch(Path.platform), Util.current_git_commit(Path.platform)]
+      end
+      log 2, str
+    end
+  end
+
+
+end; end
index f602d8982fa696af23cf92abde9ea1a711812ed6..e52c8a1acbdf6c2ba06dec35ade1dc3a4e78af73 100644 (file)
@@ -420,6 +420,12 @@ module LeapCli
       end
     end
 
+    def current_git_commit(dir)
+      Dir.chdir(dir) do
+        `git rev-parse HEAD 2>/dev/null`.strip
+      end
+    end
+
   end
 end