summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/leap_cli/commands/pre.rb153
-rw-r--r--lib/leap_cli/util.rb6
2 files changed, 93 insertions, 66 deletions
diff --git a/lib/leap_cli/commands/pre.rb b/lib/leap_cli/commands/pre.rb
index 291ad2a..cedce7f 100644
--- a/lib/leap_cli/commands/pre.rb
+++ b/lib/leap_cli/commands/pre.rb
@@ -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
diff --git a/lib/leap_cli/util.rb b/lib/leap_cli/util.rb
index f602d89..e52c8a1 100644
--- a/lib/leap_cli/util.rb
+++ b/lib/leap_cli/util.rb
@@ -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