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 +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
|