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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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