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 +4 -4
- data/lib/kbsecret/cli.rb +3 -3
- data/lib/kbsecret/cli/command.rb +6 -3
- data/lib/kbsecret/cli/command/cp.rb +13 -15
- data/lib/kbsecret/cli/command/new.rb +1 -3
- data/lib/kbsecret/cli/command/rm.rb +1 -1
- data/lib/kbsecret/cli/command/session.rb +5 -7
- data/lib/kbsecret/cli/command/sessions.rb +1 -1
- data/lib/kbsecret/cli/command/stash_file.rb +9 -6
- data/lib/kbsecret/cli/command/todo.rb +1 -1
- data/lib/kbsecret/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d2abb12b3cb915a48153cc0be2848157402f5dbedde47f3ee5c9a5abcb14e82
|
4
|
+
data.tar.gz: 530f2d1178d4d1f1d0aee47d2734a1c23f2d806c8cdc9128e84f9a8dea39b17f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f1149ffcfa5821caa3d459f7e6390552472b03a53f2fa68eb21e3c15074a785ff3881cae75457574254207af9b578ee63accf783c5607b63f7a292b7c3082bf2
|
7
|
+
data.tar.gz: 0f8a382f10d5230bd120c0051ff9dab7635ef211660b80bb57500c45142146fae9a78e1977e51b8ee5ee4f33bf09df1d6ec0753d61d35e8716badf35a95fc48e
|
data/lib/kbsecret/cli.rb
CHANGED
@@ -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.
|
data/lib/kbsecret/cli/command.rb
CHANGED
@@ -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.
|
72
|
-
|
73
|
-
|
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.
|
31
|
-
|
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
|
-
|
35
|
-
|
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
|
-
|
36
|
+
overlaps = dst_sess.record_labels & selected_records.map(&:label)
|
38
37
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
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
|
-
|
46
|
-
|
47
|
-
|
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
|
@@ -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.
|
71
|
-
|
72
|
-
Keybase::Local
|
73
|
-
|
74
|
-
|
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
|
@@ -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> [
|
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
|
-
|
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
|
52
|
+
contents = if cli.opts.stdin?
|
50
53
|
KBSecret::CLI.stdin.read
|
51
|
-
|
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.
|
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
|
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
|
|
data/lib/kbsecret/version.rb
CHANGED
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
|
+
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-
|
11
|
+
date: 2018-04-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|