Class: TFA::CLI
- Inherits:
-
Thor
- Object
- Thor
- TFA::CLI
- Defined in:
- lib/tfa/cli.rb
Instance Method Summary collapse
- #add(name, secret) ⇒ Object
- #decrypt ⇒ Object
- #destroy(name) ⇒ Object
- #encrypt ⇒ Object
- #now(secret) ⇒ Object
- #show(name = nil) ⇒ Object
- #totp(name) ⇒ Object
- #upgrade ⇒ Object
Instance Method Details
#add(name, secret) ⇒ Object
14 15 16 17 |
# File 'lib/tfa/cli.rb', line 14 def add(name, secret) storage.save(name, clean(secret)) "Added #{name}" end |
#decrypt ⇒ Object
81 82 83 84 85 |
# File 'lib/tfa/cli.rb', line 81 def decrypt return unless ensure_upgraded! secure_storage.decrypt! end |
#destroy(name) ⇒ Object
20 21 22 |
# File 'lib/tfa/cli.rb', line 20 def destroy(name) storage.delete(name) end |
#encrypt ⇒ Object
74 75 76 77 78 |
# File 'lib/tfa/cli.rb', line 74 def encrypt return unless ensure_upgraded! secure_storage.encrypt! end |
#now(secret) ⇒ Object
47 48 49 |
# File 'lib/tfa/cli.rb', line 47 def now(secret) TotpCommand.new(storage).run('', secret) end |
#show(name = nil) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/tfa/cli.rb', line 26 def show(name = nil) return storage.all.map { |x| x.keys }.flatten.sort unless name case [:format] when "qrcode" RQRCode::QRCode.new(uri_for(name, storage.secret_for(name))).as_ansi( light: "\033[47m", dark: "\033[40m", fill_character: ' ', quiet_zone_size: 1 ) when "uri" uri_for(name, storage.secret_for(name)) else storage.secret_for(name) end end |
#totp(name) ⇒ Object
42 43 44 |
# File 'lib/tfa/cli.rb', line 42 def totp(name) TotpCommand.new(storage).run(name) end |
#upgrade ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/tfa/cli.rb', line 52 def upgrade if !File.exist?(pstore_path) say_status :error, "Unable to detect #{pstore_path}", :red return end if File.exist?(secure_path) say_status :error, "The new database format was detected.", :red return end if yes? "Upgrade to #{secure_path}?" secure_storage pstore_storage.each do |row| row.each do |name, secret| secure_storage.save(name, secret) if yes?("Migrate `#{name}`?") end end File.delete(pstore_path) if yes?("Delete `#{pstore_path}`?") end end |