blob: a73de1ee3f62be443cd290a8a13fdc09a765061e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
require "thor"
module TFA
class CLI < Thor
package_name "TFA"
class_option :filename
desc "add NAME SECRET", "add a new secret to the database"
def add(name, secret)
storage.save(name, secret)
"Added #{name}"
end
desc "show NAME", "shows the secret for the given key"
def show(name = nil)
name ? storage.secret_for(name) : storage.all
end
desc "totp NAME", "generate a Time based One Time Password"
def totp(name = nil)
TotpCommand.new(storage).run([name])
end
private
def storage
@storage ||= Storage.new(filename: options[:filename] || 'tfa')
end
end
end
|