kbsecret 0.9.2 → 0.9.3

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
  SHA1:
3
- metadata.gz: 1ea5a40cccc819bf7cb2bb06da3c6bb9dd229dd9
4
- data.tar.gz: 73eff88e740a90839345b06590ff6a1d3f48ce96
3
+ metadata.gz: 85210b583f9f421d8e922ae4de0e1cf561f133ee
4
+ data.tar.gz: 07d1ce007b5b149f147e9079191875c39ca9e6f2
5
5
  SHA512:
6
- metadata.gz: 73aad2d0a5668860063dfabb86496b56860a2ec5010d7f2df1d29761a5dd4e915fbb97d201f015dcdd6e33b93c6e9460329d9cfb7087af5e5af5881aa7b5dd18
7
- data.tar.gz: 8c874c9a2a838e5f130bb4c3629d6212ba88ba0fafbcee32e1cdbcfa32138c0d737c07258261ec9dcb36b1d1cb00de5e7bf5dff3a5c3b52ddae90766739dc429
6
+ metadata.gz: 8ef1b720fa023840e640d1f608adf5e98c58c9af8822ef20fc2222fefd836c1aa5071851685f6594ca975711b2ac4c81c5f41dca2586149aa7d03d19cbfeece8
7
+ data.tar.gz: d5f854aaa737f0da2092e54452f54663cefbe0603b8be0806ac7bd98b99e5d85a660d150b2a5e6b39c8ebb0684493a2d7db17edfa0601793a8423359563228f9
data/README.md CHANGED
@@ -50,9 +50,9 @@ $ cp man/*.1 ${YOUR_MAN_DIR}
50
50
 
51
51
  ### Shell Completion
52
52
 
53
- KBSecret provides shell completion functions for bash.
53
+ KBSecret provides shell completion functions for bash and zsh.
54
54
 
55
- To generate them:
55
+ To generate the completions for Bash:
56
56
 
57
57
  ```bash
58
58
  $ bundle exec make bash
@@ -61,6 +61,9 @@ $ CMDS='foo bar baz' bundle exec make bash
61
61
  $ cp completions/kbsecret.bash ${YOUR_COMPLETION_DIR}
62
62
  ```
63
63
 
64
+ To use the completions for zsh, add the completions directory to your `$fpath` or copy the
65
+ `completions/_kbsecret` file to any of the directories in it.
66
+
64
67
  Please feel free to contribute completion scripts for other shells!
65
68
 
66
69
  ### Contributing
data/bin/kbsecret CHANGED
@@ -28,7 +28,7 @@ ALIASES = Hash.new { |_, k| k }.update(
28
28
 
29
29
  ALL_CMDS = (ALIASES.keys + BUILTIN_CMDS + INTERNAL_CMDS + EXT_CMDS).freeze
30
30
 
31
- KBSECRET_HELP = <<~EOS
31
+ KBSECRET_HELP = <<~KBSECRET_HELP
32
32
  Usage:
33
33
  kbsecret <command> <args ...>
34
34
 
@@ -37,7 +37,7 @@ KBSECRET_HELP = <<~EOS
37
37
 
38
38
  For more information about a particular command, try:
39
39
  kbsecret help <command>
40
- EOS
40
+ KBSECRET_HELP
41
41
 
42
42
  def internal?(cmd)
43
43
  INTERNAL_CMDS.include?(cmd)
@@ -86,26 +86,26 @@ end
86
86
 
87
87
  # lol
88
88
  def help_help
89
- puts <<~EOS
89
+ puts <<~HELP_HELP
90
90
  Usage:
91
91
  kbsecret help <command>
92
92
 
93
93
  For a list of all commands, see:
94
94
  kbsecret help
95
- EOS
95
+ HELP_HELP
96
96
  end
97
97
 
98
98
  def version(*_args)
99
- puts <<~EOS
99
+ puts <<~VERSION
100
100
  kbsecret version #{KBSecret::VERSION}.
101
- EOS
101
+ VERSION
102
102
  end
103
103
 
104
104
  def version_help
105
- puts <<~EOS
105
+ puts <<~VERSION_HELP
106
106
  Usage:
107
107
  kbsecret version
108
- EOS
108
+ VERSION_HELP
109
109
  end
110
110
 
111
111
  def commands(*_args)
@@ -113,10 +113,10 @@ def commands(*_args)
113
113
  end
114
114
 
115
115
  def commands_help
116
- puts <<~EOS
116
+ puts <<~COMMANDS_HELP
117
117
  Usage:
118
118
  kbsecret commands
119
- EOS
119
+ COMMANDS_HELP
120
120
  end
121
121
 
122
122
  def types(*_args)
@@ -124,10 +124,10 @@ def types(*_args)
124
124
  end
125
125
 
126
126
  def types_help
127
- puts <<~EOS
127
+ puts <<~TYPES_HELP
128
128
  Usage:
129
129
  kbsecret types
130
- EOS
130
+ TYPES_HELP
131
131
  end
132
132
 
133
133
  def conf(*_args)
@@ -138,10 +138,10 @@ def conf(*_args)
138
138
  end
139
139
 
140
140
  def conf_help
141
- puts <<~EOS
141
+ puts <<~CONF_HELP
142
142
  Usage:
143
143
  kbsecret conf
144
- EOS
144
+ CONF_HELP
145
145
  end
146
146
 
147
147
  command = normalize(ARGV.shift || "help")
@@ -7,10 +7,10 @@ include KBSecret
7
7
 
8
8
  cmd = CLI.create do |c|
9
9
  c.slop do |o|
10
- o.banner = <<~EOS
10
+ o.banner = <<~HELP
11
11
  Usage:
12
12
  kbsecret dump-fields [options] <record>
13
- EOS
13
+ HELP
14
14
 
15
15
  o.string "-s", "--session", "the session to search in", default: :default
16
16
  o.bool "-x", "--terse", "output in field<sep>value format"
@@ -7,10 +7,10 @@ include KBSecret
7
7
 
8
8
  cmd = CLI.create do |c|
9
9
  c.slop do |o|
10
- o.banner = <<~EOS
10
+ o.banner = <<~HELP
11
11
  Usage:
12
12
  kbsecret env [options] <record [record ...]>
13
- EOS
13
+ HELP
14
14
 
15
15
  o.string "-s", "--session", "the session to search in", default: :default
16
16
  o.bool "-a", "--all", "retrieve all environment records, not just listed ones"
@@ -7,10 +7,10 @@ include KBSecret
7
7
 
8
8
  cmd = CLI.create do |c|
9
9
  c.slop cmds: %w[new rm] do |o|
10
- o.banner = <<~EOS
10
+ o.banner = <<~HELP
11
11
  Usage:
12
12
  kbsecret new-generator [options] <new|rm> <generator>
13
- EOS
13
+ HELP
14
14
 
15
15
  o.string "-F", "--format", "the format of the secrets generated", default: "hex"
16
16
  o.integer "-l", "--length", "the length, in bytes, of the secrets generated",
@@ -7,10 +7,10 @@ include KBSecret
7
7
 
8
8
  cmd = CLI.create do |c|
9
9
  c.slop do |o|
10
- o.banner = <<~EOS
10
+ o.banner = <<~HELP
11
11
  Usage:
12
12
  kbsecret generators [options]
13
- EOS
13
+ HELP
14
14
 
15
15
  o.bool "-a", "--show-all", "show each generator in depth (i.e. metadata)"
16
16
  end
@@ -21,8 +21,8 @@ Config[:generators].each do |label, config|
21
21
 
22
22
  next unless cmd.opts.show_all?
23
23
 
24
- puts <<~EOS
24
+ puts <<~DETAIL
25
25
  \tFormat: #{config[:format]}
26
26
  \tLength: #{config[:length]}
27
- EOS
27
+ DETAIL
28
28
  end
@@ -7,10 +7,10 @@ include KBSecret
7
7
 
8
8
  cmd = CLI.create do |c|
9
9
  c.slop do |o|
10
- o.banner = <<~EOS
10
+ o.banner = <<~HELP
11
11
  Usage:
12
12
  kbsecret list [options]
13
- EOS
13
+ HELP
14
14
 
15
15
  o.string "-s", "--session", "the session to list from", default: :default
16
16
  o.string "-t", "--type", "the type of secrets to list", default: nil
@@ -28,9 +28,9 @@ records.each do |record|
28
28
 
29
29
  next unless cmd.opts.show_all?
30
30
 
31
- puts <<~EOS
31
+ puts <<~DETAIL
32
32
  \tType: #{record.type}
33
33
  \tLast changed: #{Time.at(record.timestamp)}
34
34
  \tRaw data: #{record.data}
35
- EOS
35
+ DETAIL
36
36
  end
@@ -7,10 +7,10 @@ include KBSecret
7
7
 
8
8
  cmd = CLI.create do |c|
9
9
  c.slop do |o|
10
- o.banner = <<~EOS
10
+ o.banner = <<~HELP
11
11
  Usage:
12
12
  kbsecret login [options] <record [record ...]>
13
- EOS
13
+ HELP
14
14
 
15
15
  o.string "-s", "--session", "the session to search in", default: :default
16
16
  o.bool "-a", "--all", "retrieve all login records, not just listed ones"
@@ -42,10 +42,10 @@ selected_records.each do |record|
42
42
  fields = %i[label username password].map { |m| record.send(m) }
43
43
  puts fields.join(cmd.opts[:ifs])
44
44
  else
45
- puts <<~EOS
45
+ puts <<~DETAIL
46
46
  Label: #{record.label}
47
47
  \tUsername: #{record.username}
48
48
  \tPassword: #{record.password}
49
- EOS
49
+ DETAIL
50
50
  end
51
51
  end
@@ -12,11 +12,11 @@ TYPE_ALIASES = Hash.new { |_, k| k }.update(Abbrev.abbrev(Record.record_types)).
12
12
 
13
13
  cmd = CLI.create do |c|
14
14
  c.slop do |o|
15
- o.banner = <<~EOS
15
+ o.banner = <<~HELP
16
16
  Usage:
17
17
  kbsecret new [options] <type> <label>
18
18
  kbsecret new [options] --args <type> <label> <fields>
19
- EOS
19
+ HELP
20
20
 
21
21
  o.string "-s", "--session", "the session to contain the record", default: :default
22
22
  o.bool "-f", "--force", "force creation (ignore overwrites, etc.)"
@@ -69,9 +69,9 @@ fields = if ($stdin.tty? && !cmd.opts.args?) || cmd.opts.terse?
69
69
  end
70
70
  end
71
71
  else
72
- cmd.warn <<~EOS
72
+ cmd.warn <<~WARNING
73
73
  Argument input is dangerous and deprecated, and will be removed by 1.0.
74
- EOS
74
+ WARNING
75
75
 
76
76
  cmd.args[:fields]
77
77
  end
@@ -8,13 +8,13 @@ include KBSecret
8
8
 
9
9
  cmd = CLI.create do |c|
10
10
  c.slop do |o|
11
- o.banner = <<~EOS
11
+ o.banner = <<~HELP
12
12
  Usage:
13
13
  kbsecret new-session [options]
14
- EOS
14
+ HELP
15
15
 
16
16
  o.string "-t", "--team", "the team to create the session under"
17
- o.string "-l", "--label", "the session label"
17
+ o.string "-l", "--label", "the session label", required: true
18
18
  o.array "-u", "--users", "the keybase users", default: [Keybase::Local.current_user]
19
19
  o.string "-r", "--root", "the secret root directory"
20
20
  o.bool "-f", "--force", "force creation (ignore overwrites, etc.)"
@@ -51,7 +51,7 @@ else
51
51
  unless cmd.opts.no_notify? && cmd.opts[:users] != [Keybase::Local.current_user]
52
52
  users = cmd.opts[:users].join(",")
53
53
 
54
- Keybase::Local::Chat.send_message cmd.opts[:users], <<~EOM
54
+ Keybase::Local::Chat.send_message cmd.opts[:users], <<~MESSAGE
55
55
  You've been added to a KBSecret session!
56
56
 
57
57
  To access this session, please run the following:
@@ -65,6 +65,6 @@ else
65
65
  ```
66
66
  $ gem install kbsecret
67
67
  ```
68
- EOM
68
+ MESSAGE
69
69
  end
70
70
  end
@@ -8,10 +8,10 @@ include KBSecret
8
8
 
9
9
  cmd = CLI.create do |c|
10
10
  c.slop do |o|
11
- o.banner = <<~EOS
11
+ o.banner = <<~HELP
12
12
  Usage:
13
13
  kbsecret pass [options] <record>
14
- EOS
14
+ HELP
15
15
 
16
16
  o.string "-s", "--session", "the session to search in", default: :default
17
17
  o.bool "-c", "--clipboard", "dump the password in the clipboard"
@@ -7,10 +7,10 @@ include KBSecret
7
7
 
8
8
  cmd = CLI.create do |c|
9
9
  c.slop do |o|
10
- o.banner = <<~EOS
10
+ o.banner = <<~HELP
11
11
  Usage:
12
12
  kbsecret raw-edit [options] <record>
13
- EOS
13
+ HELP
14
14
 
15
15
  o.string "-s", "--session", "the session to search in", default: :default
16
16
  end
@@ -10,10 +10,10 @@ $VERBOSE = nil # tty-prompt blasts us with irrelevant warnings on 2.4
10
10
 
11
11
  cmd = CLI.create do |c|
12
12
  c.slop do |o|
13
- o.banner = <<~EOS
13
+ o.banner = <<~HELP
14
14
  Usage:
15
15
  kbsecret rm [options] <record>
16
- EOS
16
+ HELP
17
17
 
18
18
  o.string "-s", "--session", "the session containing the record", default: :default
19
19
  o.bool "-i", "--interactive", "ask for confirmation before deleting"
@@ -7,10 +7,10 @@ include KBSecret
7
7
 
8
8
  cmd = CLI.create do |c|
9
9
  c.slop do |o|
10
- o.banner = <<~EOS
10
+ o.banner = <<~HELP
11
11
  Usage:
12
12
  kbsecret rm-session [options] <session>
13
- EOS
13
+ HELP
14
14
 
15
15
  o.bool "-d", "--delete", "unlink the session in addition to deconfiguration"
16
16
  end
@@ -7,10 +7,10 @@ include KBSecret
7
7
 
8
8
  cmd = CLI.create do |c|
9
9
  c.slop do |o|
10
- o.banner = <<~EOS
10
+ o.banner = <<~HELP
11
11
  Usage:
12
12
  kbsecret sessions [options]
13
- EOS
13
+ HELP
14
14
 
15
15
  o.bool "-a", "--show-all", "show each session in depth (i.e. metadata)"
16
16
  end
@@ -25,14 +25,14 @@ Config.session_labels.each do |sess_name|
25
25
  next unless cmd.opts.show_all?
26
26
 
27
27
  if session_hash[:team]
28
- puts <<~EOS
28
+ puts <<~DETAIL
29
29
  \tTeam: #{session_hash[:team]}
30
30
  \tSecrets root: #{session_hash[:root]} (#{session.path})
31
- EOS
31
+ DETAIL
32
32
  else
33
- puts <<~EOS
33
+ puts <<~DETAIL
34
34
  \tUsers: #{session_hash[:users].join(", ")}
35
35
  \tSecrets root: #{session_hash[:root]} (#{session.path})
36
- EOS
36
+ DETAIL
37
37
  end
38
38
  end
@@ -8,10 +8,10 @@ include KBSecret
8
8
 
9
9
  cmd = CLI.create do |c|
10
10
  c.slop do |o|
11
- o.banner = <<~EOS
11
+ o.banner = <<~HELP
12
12
  Usage:
13
13
  kbsecret stash-file <record> [file]
14
- EOS
14
+ HELP
15
15
 
16
16
  o.string "-s", "--session", "the session to add to", default: :default
17
17
  o.bool "-f", "--force", "force creation (ignore overwrites, etc.)"
@@ -7,10 +7,10 @@ include KBSecret
7
7
 
8
8
  cmd = CLI.create do |c|
9
9
  c.slop cmds: %w[start suspend complete] do |o|
10
- o.banner = <<~EOS
10
+ o.banner = <<~HELP
11
11
  Usage:
12
12
  kbsecret todo <start|suspend|complete> <record>
13
- EOS
13
+ HELP
14
14
 
15
15
  o.string "-s", "--session", "the session to search in", default: :default
16
16
  end
data/lib/kbsecret/cli.rb CHANGED
@@ -67,7 +67,7 @@ module KBSecret
67
67
  o.bool "--debug", "produce full backtraces on errors"
68
68
 
69
69
  o.on "-h", "--help", "show this help message" do
70
- puts o
70
+ puts o.to_s prefix: " "
71
71
  exit
72
72
  end
73
73
 
@@ -141,7 +141,7 @@ module KBSecret
141
141
  def guard
142
142
  yield
143
143
  rescue => e
144
- STDERR.puts e.backtrace if @opts.debug?
144
+ STDERR.puts e.backtrace if @opts&.debug?
145
145
  die "#{e.to_s.capitalize}."
146
146
  end
147
147
 
@@ -50,7 +50,7 @@ module KBSecret
50
50
  hsh = JSON.parse(File.read(path), symbolize_names: true)
51
51
  klass = class_for hsh[:type]
52
52
  klass&.load!(session, hsh)
53
- rescue
53
+ rescue JSON::JSONError
54
54
  raise Exceptions::RecordLoadError, path
55
55
  end
56
56
  end
data/lib/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
 
3
3
  module KBSecret
4
4
  # kbsecret's current version
5
- VERSION = "0.9.2"
5
+ VERSION = "0.9.3"
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: 0.9.2
4
+ version: 0.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Woodruff
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-21 00:00:00.000000000 Z
11
+ date: 2017-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fpm
@@ -156,28 +156,28 @@ dependencies:
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: 0.6.0
159
+ version: 0.7.0
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: 0.6.0
166
+ version: 0.7.0
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: slop
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
171
  - - "~>"
172
172
  - !ruby/object:Gem::Version
173
- version: '4.4'
173
+ version: '4.6'
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: '4.4'
180
+ version: '4.6'
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: tty-prompt
183
183
  requirement: !ruby/object:Gem::Requirement