Commit db3a11c

mokha <mokha@cisco.com>
2018-12-03 04:58:12
add qrcode export.
1 parent 1954d7b
Changed files (3)
lib/tfa/cli.rb
@@ -19,8 +19,20 @@ module TFA
     end
 
     desc "show NAME", "shows the secret for the given key"
+    method_option :format, default: "raw", enum: ["raw", "qrcode"], desc: "The format to export"
     def show(name = nil)
-      name ? storage.secret_for(name) : storage.all.map { |x| x.keys }.flatten.sort
+      if name
+        secret = storage.secret_for(name)
+        case options[:format]
+        when "qrcode"
+          require 'rqrcode'
+          RQRCode::QRCode.new("otpauth://totp/unknown@example.org?secret=#{secret}&issuer=#{name}").as_ansi
+        else
+          secret
+        end
+      else
+        storage.all.map { |x| x.keys }.flatten.sort
+      end
     end
 
     desc "totp NAME", "generate a Time based One Time Password using the secret associated with the given NAME."
lib/tfa/version.rb
@@ -1,3 +1,3 @@
 module TFA
-  VERSION = "0.0.15".freeze
+  VERSION = "0.0.16".freeze
 end
tfa.gemspec
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
   spec.required_ruby_version = "~> 2.5"
 
   spec.add_dependency "rotp", "~> 3.3"
+  spec.add_dependency "rqrcode", "~> 0.10"
   spec.add_dependency "thor", "~> 0.20"
   spec.add_development_dependency "bundler", "~> 1.6"
   spec.add_development_dependency "rake", "~> 12.3"