kbsecret 0.9.1 → 0.9.2

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: a630e62d3a3ffef0b87f101ae9b44591b5cf1408
4
- data.tar.gz: b2ad833e1c4d2033d9980f7b8e6c17ee408851df
3
+ metadata.gz: 1ea5a40cccc819bf7cb2bb06da3c6bb9dd229dd9
4
+ data.tar.gz: 73eff88e740a90839345b06590ff6a1d3f48ce96
5
5
  SHA512:
6
- metadata.gz: b2068b253ab8368380f7250073ab1be95e897d3095376950143ac38e614419f9763e3a9db49c2ff7eaeed259abc712d0af319615601c372ffcdbdd431bf34bbe
7
- data.tar.gz: 7845e632126c51b432c42ebdbd68c73d6b3711f105caa75ed20e9cf93312ed51bf8433b65c1b926688553336d265dd1af24e3fce1e3bc136aaf8ea77329b025e
6
+ metadata.gz: 73aad2d0a5668860063dfabb86496b56860a2ec5010d7f2df1d29761a5dd4e915fbb97d201f015dcdd6e33b93c6e9460329d9cfb7087af5e5af5881aa7b5dd18
7
+ data.tar.gz: 8c874c9a2a838e5f130bb4c3629d6212ba88ba0fafbcee32e1cdbcfa32138c0d737c07258261ec9dcb36b1d1cb00de5e7bf5dff3a5c3b52ddae90766739dc429
@@ -10,50 +10,61 @@ cmd = CLI.create do |c|
10
10
  c.slop do |o|
11
11
  o.banner = <<~EOS
12
12
  Usage:
13
- kbsecret new-session [options] --label <label> --root <dir>
13
+ kbsecret new-session [options]
14
14
  EOS
15
15
 
16
+ o.string "-t", "--team", "the team to create the session under"
16
17
  o.string "-l", "--label", "the session label"
17
- o.array "-u", "--users", "the keybase users", default: [Keybase.current_user]
18
+ o.array "-u", "--users", "the keybase users", default: [Keybase::Local.current_user]
18
19
  o.string "-r", "--root", "the secret root directory"
19
20
  o.bool "-f", "--force", "force creation (ignore overwrites, etc.)"
20
21
  o.bool "-n", "--no-notify", "do not send a notification to session members"
21
22
  end
22
23
  end
23
24
 
24
- cmd.opts[:users].each do |user|
25
- cmd.die "Nonexistent Keybase user: '#{user}'" unless Keybase::API.user? user
26
- end
27
-
28
- unless cmd.opts[:users].include? Keybase.current_user
29
- cmd.warn "You didn't include yourself in the user list, but I'll add you."
30
- cmd.opts[:users] << Keybase.current_user
31
- end
32
-
33
25
  session_label = cmd.opts[:label]
34
26
 
35
27
  if Config.session?(session_label) && !cmd.opts.force?
36
28
  cmd.die "Refusing to overwrite an existing session without --force."
37
29
  end
38
30
 
39
- Config.configure_session(session_label, users: cmd.opts[:users], root: cmd.opts[:root])
31
+ if cmd.opts[:team]
32
+ teams = Keybase::Local::Team.list_memberships["teams"]
33
+
34
+ unless teams.any? { |t| t["fq_name"] == cmd.opts[:team] }
35
+ cmd.die "No such team (either nonexistent or non-member)."
36
+ end
37
+
38
+ Config.configure_session(session_label, team: cmd.opts[:team], root: session_label)
39
+ else
40
+ cmd.opts[:users].each do |user|
41
+ cmd.die "Nonexistent Keybase user: '#{user}'." unless Keybase::API.user? user
42
+ end
43
+
44
+ unless cmd.opts[:users].include? Keybase::Local.current_user
45
+ cmd.warn "You didn't include yourself in the user list, but I'll add you."
46
+ cmd.opts[:users] << Keybase::Local.current_user
47
+ end
48
+
49
+ Config.configure_session(session_label, users: cmd.opts[:users], root: cmd.opts[:root])
40
50
 
41
- unless cmd.opts.no_notify? && cmd.opts[:users] != [Keybase.current_user]
42
- users = cmd.opts[:users].join(",")
51
+ unless cmd.opts.no_notify? && cmd.opts[:users] != [Keybase::Local.current_user]
52
+ users = cmd.opts[:users].join(",")
43
53
 
44
- Keybase::Chat.send_message cmd.opts[:users], <<~EOM
45
- You've been added to a KBSecret session!
54
+ Keybase::Local::Chat.send_message cmd.opts[:users], <<~EOM
55
+ You've been added to a KBSecret session!
46
56
 
47
- To access this session, please run the following:
57
+ To access this session, please run the following:
48
58
 
49
- ```
50
- $ kbsecret new-session -l '<your label>' -r '#{cmd.opts[:root]}' -u #{users}
51
- ```
59
+ ```
60
+ $ kbsecret new-session -l '<your label>' -r '#{cmd.opts[:root]}' -u #{users}
61
+ ```
52
62
 
53
- If you don't have KBSecret installed, you can install it from `gem`:
63
+ If you don't have KBSecret installed, you can install it from `gem`:
54
64
 
55
- ```
56
- $ gem install kbsecret
57
- ```
58
- EOM
65
+ ```
66
+ $ gem install kbsecret
67
+ ```
68
+ EOM
69
+ end
59
70
  end
@@ -24,8 +24,15 @@ Config.session_labels.each do |sess_name|
24
24
 
25
25
  next unless cmd.opts.show_all?
26
26
 
27
- puts <<~EOS
28
- \tUsers: #{session_hash[:users].join(", ")}
29
- \tSecrets root: #{session_hash[:root]} (#{session.path})
30
- EOS
27
+ if session_hash[:team]
28
+ puts <<~EOS
29
+ \tTeam: #{session_hash[:team]}
30
+ \tSecrets root: #{session_hash[:root]} (#{session.path})
31
+ EOS
32
+ else
33
+ puts <<~EOS
34
+ \tUsers: #{session_hash[:users].join(", ")}
35
+ \tSecrets root: #{session_hash[:root]} (#{session.path})
36
+ EOS
37
+ end
31
38
  end
data/lib/kbsecret/cli.rb CHANGED
@@ -64,6 +64,7 @@ module KBSecret
64
64
 
65
65
  o.bool "-V", "--verbose", "produce more verbose output"
66
66
  o.bool "-w", "--no-warn", "suppress warning messages"
67
+ o.bool "--debug", "produce full backtraces on errors"
67
68
 
68
69
  o.on "-h", "--help", "show this help message" do
69
70
  puts o
@@ -140,6 +141,7 @@ module KBSecret
140
141
  def guard
141
142
  yield
142
143
  rescue => e
144
+ STDERR.puts e.backtrace if @opts.debug?
143
145
  die "#{e.to_s.capitalize}."
144
146
  end
145
147
 
@@ -41,7 +41,7 @@ module KBSecret
41
41
  # The default session configuration.
42
42
  DEFAULT_SESSION = {
43
43
  default: {
44
- users: [Keybase.current_user],
44
+ users: [Keybase::Local.current_user],
45
45
  root: "default",
46
46
  },
47
47
  }.freeze
@@ -57,6 +57,7 @@ module KBSecret
57
57
  # configuration defaults
58
58
  # @api private
59
59
  DEFAULT_CONFIG = {
60
+ mount: "/keybase",
60
61
  sessions: DEFAULT_SESSION.dup,
61
62
  generators: DEFAULT_GENERATOR.dup,
62
63
  }.freeze
@@ -25,7 +25,10 @@ module KBSecret
25
25
  @label = label.to_sym
26
26
  @config = Config.session(@label)
27
27
 
28
- raise Exceptions::SessionLoadError, "no users in session" if @config[:users].empty?
28
+ # team sessions don't have explicit users
29
+ unless @config[:team]
30
+ raise Exceptions::SessionLoadError, "no users in session" if @config[:users].empty?
31
+ end
29
32
 
30
33
  @path = rel_path mkdir: true
31
34
  @records = load_records!
@@ -123,10 +126,13 @@ module KBSecret
123
126
  # @return [String] the fully qualified path to the session
124
127
  # @api private
125
128
  def rel_path(mkdir: false)
126
- # /keybase/private/[u1,u2,...,uN]/kbsecret/[session]
127
- path = File.join(Keybase::Config::KBFS_MOUNT, "private",
128
- Keybase::U[@config[:users]],
129
- "kbsecret", @config[:root])
129
+ path = if @config[:team]
130
+ File.join(Config[:mount], "team", @config[:team], "kbsecret", @config[:root])
131
+ else
132
+ # /keybase/private/[u1,u2,...,uN]/kbsecret/[session]
133
+ File.join(Config[:mount], "private", Keybase::Core::U[@config[:users]], "kbsecret",
134
+ @config[:root])
135
+ end
130
136
 
131
137
  FileUtils.mkdir_p path if mkdir
132
138
 
data/lib/kbsecret.rb CHANGED
@@ -13,6 +13,6 @@ require_relative "kbsecret/cli"
13
13
  # The primary namespace for {KBSecret}.
14
14
  module KBSecret
15
15
  # fail very early if the user doesn't have keybase and KBFS running
16
- raise Keybase::Exceptions::KeybaseNotRunningError unless Keybase.running?
17
- raise Keybase::Exceptions::KBFSNotRunningError unless Dir.exist?(Keybase::Config::KBFS_MOUNT)
16
+ raise Keybase::Local::Exceptions::KeybaseNotRunningError unless Keybase::Local.running?
17
+ raise Keybase::Local::Exceptions::KBFSNotRunningError unless Dir.exist?(Config[:mount])
18
18
  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.1"
5
+ VERSION = "0.9.2"
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.1
4
+ version: 0.9.2
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-02 00:00:00.000000000 Z
11
+ date: 2017-09-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fpm
@@ -156,14 +156,14 @@ dependencies:
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: 0.4.0
159
+ version: 0.6.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.4.0
166
+ version: 0.6.0
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: slop
169
169
  requirement: !ruby/object:Gem::Requirement
@@ -252,7 +252,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
252
252
  version: '0'
253
253
  requirements: []
254
254
  rubyforge_project:
255
- rubygems_version: 2.6.11
255
+ rubygems_version: 2.6.13
256
256
  signing_key:
257
257
  specification_version: 4
258
258
  summary: kbsecret - A KBFS (Keybase) backed secret manager.