From 47b3bb60a20674d029950ebd39f6aacf67e81866 Mon Sep 17 00:00:00 2001
From: elijah <elijah@riseup.net>
Date: Wed, 20 Jul 2016 23:46:48 -0700
Subject: [PATCH] include support for AWS via fog

---
 leap_cli.gemspec                |  1 +
 lib/leap_cli/commands/common.rb |  2 +-
 lib/leap_cli/log.rb             | 14 ++++++++++++++
 lib/leap_cli/util.rb            | 13 ++++++-------
 4 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/leap_cli.gemspec b/leap_cli.gemspec
index 12fc07f..cf8c37e 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 d49490e..3dab2a0 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 01d372c..fe9e1b7 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 29658da..45606b7 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
 
-- 
GitLab