kbsecret 1.3.0.pre.4 → 1.3.0.pre.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ddd86d8a3994af1e1af0a7808160da68e05408b13bbf9754353c6edbe7971606
4
- data.tar.gz: f7c63f25a2f1bfcd85ea5d9860cc4d8a8f90afdbd50ba9773fe3d1f82a49ba09
3
+ metadata.gz: 2d2abb12b3cb915a48153cc0be2848157402f5dbedde47f3ee5c9a5abcb14e82
4
+ data.tar.gz: 530f2d1178d4d1f1d0aee47d2734a1c23f2d806c8cdc9128e84f9a8dea39b17f
5
5
  SHA512:
6
- metadata.gz: 0adbd60dc4a40738080cda3e7dc46f9860a14b2be6c17b8cdf0b2e58663b3519ccdc044c7239b0695ac0ddb5cbb22b691d57dc1342521c378cdad0abde728622
7
- data.tar.gz: edf4321291b552a13de4aeac29c5b56d52e1e6823aa13423a6e6a1fd28816b2493747a781219c10ea53c3081c579d6b4ca00cb1eab9fdf0c446869ea930ba854
6
+ metadata.gz: f1149ffcfa5821caa3d459f7e6390552472b03a53f2fa68eb21e3c15074a785ff3881cae75457574254207af9b578ee63accf783c5607b63f7a292b7c3082bf2
7
+ data.tar.gz: 0f8a382f10d5230bd120c0051ff9dab7635ef211660b80bb57500c45142146fae9a78e1977e51b8ee5ee4f33bf09df1d6ec0753d61d35e8716badf35a95fc48e
@@ -151,7 +151,7 @@ module KBSecret
151
151
  def guard
152
152
  yield
153
153
  rescue => e
154
- self.stderr.puts e.backtrace if @opts&.debug?
154
+ self.class.stderr.puts e.backtrace if @opts&.debug?
155
155
  die "#{e.to_s.capitalize}."
156
156
  end
157
157
 
@@ -159,7 +159,7 @@ module KBSecret
159
159
  # @param msg [String] the message to print
160
160
  # @return [void]
161
161
  def info(msg)
162
- self.stderr.puts "#{GREEN["Info"]}: #{msg}"
162
+ self.class.stderr.puts "#{GREEN["Info"]}: #{msg}"
163
163
  end
164
164
 
165
165
  # Print an information message, but only if verbose output has been enabled.
@@ -184,7 +184,7 @@ module KBSecret
184
184
  # @return [void]
185
185
  def warn(msg)
186
186
  return if @opts.no_warn?
187
- self.stderr.puts "#{YELLOW["Warning"]}: #{msg}"
187
+ self.class.stderr.puts "#{YELLOW["Warning"]}: #{msg}"
188
188
  end
189
189
 
190
190
  # Print an error message and terminate.
@@ -64,13 +64,16 @@ module KBSecret
64
64
  # @param command_name [String] the CLI-friendly name of the internal command to run
65
65
  # @param args [Array<String>] the arguments, if any, to pass to the command
66
66
  # @note This method only takes **internal** command names.
67
+ # @note This method *may* not return!
67
68
  # @return [void]
68
69
  def run!(command_name, *args)
69
70
  klass = internal_command_for command_name
70
71
  cmd = klass.new(args)
71
- cmd.setup!
72
- cmd.validate!
73
- cmd.run!
72
+ cmd.cli.guard do
73
+ cmd.setup!
74
+ cmd.validate!
75
+ cmd.run!
76
+ end
74
77
  end
75
78
  end
76
79
  end
@@ -27,25 +27,23 @@ module KBSecret
27
27
 
28
28
  # @see Command::Abstract#run!
29
29
  def run!
30
- cli.guard do
31
- src_sess = Session[cli.args[:src_sess]]
32
- dst_sess = Session[cli.args[:dst_sess]]
30
+ src_sess = KBSecret::Session[cli.args[:src_sess]]
31
+ dst_sess = KBSecret::Session[cli.args[:dst_sess]]
33
32
 
34
- selected_records = src_sess.records.select { |r| cli.args[:labels].include?(r.label) }
35
- cli.die "No such record(s)." if selected_records.empty?
33
+ selected_records = src_sess.records.select { |r| cli.args[:labels].include?(r.label) }
34
+ cli.die "No such record(s)." if selected_records.empty?
36
35
 
37
- overlaps = dst_sess.record_labels & selected_records.map(&:label)
36
+ overlaps = dst_sess.record_labels & selected_records.map(&:label)
38
37
 
39
- # the code below actually handles the overwriting if necessary, but we fail early here
40
- # for friendliness and to avoid half-copying the selected records
41
- unless overlaps.empty? || cli.opts.force?
42
- cli.die "Refusing to overwrite existing record(s) without --force."
43
- end
38
+ # the code below actually handles the overwriting if necessary, but we fail early here
39
+ # for friendliness and to avoid half-copying the selected records
40
+ unless overlaps.empty? || cli.opts.force?
41
+ cli.die "Refusing to overwrite existing record(s) without --force."
42
+ end
44
43
 
45
- selected_records.each do |record|
46
- dst_sess.import_record(record, overwrite: cli.opts.force?)
47
- src_sess.delete_record(label) if cli.opts.move?
48
- end
44
+ selected_records.each do |record|
45
+ dst_sess.import_record(record, overwrite: cli.opts.force?)
46
+ src_sess.delete_record(record.label) if cli.opts.move?
49
47
  end
50
48
  end
51
49
  end
@@ -72,9 +72,7 @@ module KBSecret
72
72
  end
73
73
  end
74
74
 
75
- cli.guard do
76
- cli.session.add_record @type, @label, *fields, overwrite: cli.opts.force?
77
- end
75
+ cli.session.add_record @type, @label, *fields, overwrite: cli.opts.force?
78
76
  end
79
77
  end
80
78
  end
@@ -46,7 +46,7 @@ module KBSecret
46
46
  tty = TTY::Prompt.new
47
47
 
48
48
  confirm = if cli.opts.interactive?
49
- tty.yes?("Delete '#{selected_records.join(", ")}'?")
49
+ tty.yes?("Delete '#{@selected_records.join(", ")}'?")
50
50
  else true
51
51
  end
52
52
 
@@ -67,13 +67,11 @@ module KBSecret
67
67
 
68
68
  unless teams.map(&:fq_name).include?(cli.opts[:team])
69
69
  if cli.opts.create_team?
70
- cli.guard do
71
- Keybase::Local::Team.create_team cli.opts[:team]
72
- Keybase::Local::Team.add_members cli.opts[:team], users: [{
73
- username: Keybase::Local.current_user,
74
- role: "admin",
75
- }]
76
- end
70
+ Keybase::Local::Team.create_team cli.opts[:team]
71
+ Keybase::Local::Team.add_members cli.opts[:team], users: [{
72
+ username: Keybase::Local.current_user,
73
+ role: "admin",
74
+ }]
77
75
  else
78
76
  cli.die "No such team (either nonexistent or non-member)."
79
77
  end
@@ -22,7 +22,7 @@ module KBSecret
22
22
  def run!
23
23
  Config.session_labels.each do |sess_name|
24
24
  session_hash = Config.session(sess_name)
25
- session = cli.guard { KBSecret::Session[sess_name] }
25
+ session = KBSecret::Session[sess_name]
26
26
 
27
27
  puts sess_name
28
28
 
@@ -12,17 +12,18 @@ module KBSecret
12
12
  cli.slop do |o|
13
13
  o.banner = <<~HELP
14
14
  Usage:
15
- kbsecret stash-file <record> [file]
15
+ kbsecret stash-file <record> [filename]
16
16
  HELP
17
17
 
18
18
  o.string "-s", "--session", "the session to add to", default: :default
19
19
  o.bool "-f", "--force", "force creation (ignore overwrites, etc.)"
20
20
  o.bool "-b", "--base64", "encode the file as base64"
21
+ o.bool "-", "--stdin", "read from stdin instead of a filename"
21
22
  end
22
23
 
23
24
  cli.dreck do
24
25
  string :label
25
- string :filename
26
+ string :filename unless cli.opts.stdin?
26
27
  end
27
28
 
28
29
  cli.ensure_session!
@@ -41,20 +42,22 @@ module KBSecret
41
42
  cli.die "Refusing to overwrite a record without --force."
42
43
  end
43
44
 
44
- cli.die "No such file." unless File.file?(@filename) || @filename == "-"
45
+ if @filename
46
+ cli.die "No such file." unless File.file?(@filename)
47
+ end
45
48
  end
46
49
 
47
50
  # @see Command::Abstract#run!
48
51
  def run!
49
- contents = if @filename == "-"
52
+ contents = if cli.opts.stdin?
50
53
  KBSecret::CLI.stdin.read
51
- elsif File.file?(@filename)
54
+ else
52
55
  File.read(@filename)
53
56
  end
54
57
 
55
58
  contents = Base64.encode64(contents) if cli.opts.base64?
56
59
 
57
- cli.guard { cli.session.add_record(:unstructured, @label, contents) }
60
+ cli.session.add_record(:unstructured, @label, contents, overwrite: cli.opts.force?)
58
61
  end
59
62
  end
60
63
  end
@@ -36,7 +36,7 @@ module KBSecret
36
36
 
37
37
  # @see Command::Abstract#validate!
38
38
  def validate!
39
- cli.die "No such todo record:." unless @todo && @todo.type == :todo
39
+ cli.die "No such todo record: #{@todo}." unless @todo && @todo.type == :todo
40
40
  cli.die "Unknown subcommand: #{@subcmd}." unless SUBCOMMANDS.include?(@subcmd)
41
41
  end
42
42
 
@@ -2,5 +2,5 @@
2
2
 
3
3
  module KBSecret
4
4
  # kbsecret's current version
5
- VERSION = "1.3.0.pre.4"
5
+ VERSION = "1.3.0.pre.5"
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kbsecret
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0.pre.4
4
+ version: 1.3.0.pre.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Woodruff
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-03 00:00:00.000000000 Z
11
+ date: 2018-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest