diff --git a/leap_cli.gemspec b/leap_cli.gemspec index 12fc07fc83e0056b77f8fc6bc6767c243a3e5129..cf8c37eb75277a2085a5dbca7252e10f03adecb7 100644 --- a/leap_cli.gemspec +++ b/leap_cli.gemspec @@ -51,6 +51,7 @@ spec = Gem::Specification.new do |s| # network gems s.add_runtime_dependency('sshkit', '~> 1.11') + s.add_runtime_dependency('fog-aws') # crypto gems # s.add_runtime_dependency('gpgme') # << does not build on debian jessie, so now optional. diff --git a/lib/leap_cli/commands/common.rb b/lib/leap_cli/commands/common.rb index d49490ebd06f840ac602ff6d4794093f0251a3da..3dab2a082b8f3297bd620a6dfeca686016ebd043 100644 --- a/lib/leap_cli/commands/common.rb +++ b/lib/leap_cli/commands/common.rb @@ -20,7 +20,7 @@ module LeapCli; module Commands items.each_with_index(&block) say("q. quit") index = ask("number 1-#{items.length}> ") - if index.empty? + if index.nil? || index.empty? next elsif index =~ /q/ bail! diff --git a/lib/leap_cli/log.rb b/lib/leap_cli/log.rb index 01d372ccb5315e28cf0d6ba03489c7140c7ba22a..fe9e1b77bd74b440f3dfa979630cee42b8768d92 100644 --- a/lib/leap_cli/log.rb +++ b/lib/leap_cli/log.rb @@ -28,6 +28,20 @@ module LeapCli def log_level logger.log_level end + + # + # These probably should have been part of the logger originally, + # but they are made available here for convenience: + # + + def bail!(*args, &block) + Util.bail!(*args, &block) + end + + def assert!(*args, &block) + Util.assert!(*args, &block) + end + end end diff --git a/lib/leap_cli/util.rb b/lib/leap_cli/util.rb index 29658da5344fb5efd2c82ec5b95705c1bede2b84..45606b75d1813fdb1c9a064f024ef2aaea16e13a 100644 --- a/lib/leap_cli/util.rb +++ b/lib/leap_cli/util.rb @@ -40,14 +40,13 @@ module LeapCli # # exit with error code and with a message that we are bailing out. # - def bail!(*message) - if block_given? - LeapCli.logger.log_level = 3 - yield - elsif message - log 0, *message + def bail!(*message, &block) + LeapCli.logger.log_level = 3 if LeapCli.logger.log_level < 3 + if message.any? + log(0, *message, &block) + else + log(0, :bailing, "out", &block) end - log 0, :bail, "" raise SystemExit.new(exit_status || 1) end