kbsecret 0.9.2 → 0.9.3

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