kbsecret 0.9.1 → 0.9.2

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