summaryrefslogtreecommitdiff
path: root/lib/leap_cli/commands/pre.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/leap_cli/commands/pre.rb')
-rw-r--r--lib/leap_cli/commands/pre.rb69
1 files changed, 39 insertions, 30 deletions
diff --git a/lib/leap_cli/commands/pre.rb b/lib/leap_cli/commands/pre.rb
index 055f3a1..74d7e62 100644
--- a/lib/leap_cli/commands/pre.rb
+++ b/lib/leap_cli/commands/pre.rb
@@ -28,57 +28,66 @@ module LeapCli; module Commands
switch 'color', :negatable => true
pre do |global,command,options,args|
- #
+ initialize_leap_cli(true, global)
+ true
+ end
+
+ protected
+
+ #
+ # available options:
+ # :verbose -- integer log verbosity level
+ # :log -- log file path
+ # :color -- true or false, to log in color or not.
+ #
+ def initialize_leap_cli(require_provider, options={})
# set verbosity
- #
- LeapCli.set_log_level(global[:verbose].to_i)
+ options[:verbose] ||= 1
+ LeapCli.set_log_level(options[:verbose].to_i)
- #
# load Leapfile
- #
- unless LeapCli.leapfile.load
+ LeapCli.leapfile.load
+ if LeapCli.leapfile.valid?
+ 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
+ elsif require_provider
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.log_file = options[:log] || LeapCli.leapfile.log
LeapCli::Util.log_raw(:log) { $0 + ' ' + ORIGINAL_ARGV.join(' ')}
log_version
- LeapCli.log_in_color = global[:color]
-
- true
+ LeapCli.log_in_color = options[:color]
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)]
+ if Util.is_git_directory?(LEAP_CLI_BASE_DIR)
+ str << " (%s %s)" % [Util.current_git_branch(LEAP_CLI_BASE_DIR),
+ Util.current_git_commit(LEAP_CLI_BASE_DIR)]
+ else
+ str << " (%s)" % LEAP_CLI_BASE_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)]
+ if LeapCli.leapfile.valid?
+ 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
- log 2, str
end
end
-
end; end