kbsecret 0.3.6 → 0.4.0
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/README.md +2 -3
- data/lib/kbsecret.rb +1 -1
- data/lib/kbsecret/config.rb +3 -2
- data/lib/kbsecret/record/abstract.rb +14 -8
- data/lib/kbsecret/session.rb +13 -3
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b92602206f1d3a9d5e7a6229c92de8483b90bc78
|
|
4
|
+
data.tar.gz: d8677ddd153af6bd8b045bb952035e6e3a2747cb
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: dd25e6557b8d4c087ba0768114a76db07bdfad421f90adbfbf17abb7a665131f2febae4e5767c7447512a5762533279b452841c93f0f0a2b89383acfa4966b61
|
|
7
|
+
data.tar.gz: df41aa140028171ebc7f10745af3e735390304b13fce9a7b249162fe32be6a29156e14e5a5f4894fda840ac63bb7c34e5068ed91aec7790a2b67e81bd82977d2
|
data/README.md
CHANGED
|
@@ -60,11 +60,11 @@ default
|
|
|
60
60
|
dev-team
|
|
61
61
|
|
|
62
62
|
# add an environment record to the dev-team session
|
|
63
|
-
$ kbsecret new environment API_KEY 0xBADBEEF -s dev-team
|
|
63
|
+
$ kbsecret new environment api-key API_KEY 0xBADBEEF -s dev-team
|
|
64
64
|
|
|
65
65
|
# list all records under the dev-team session
|
|
66
66
|
$ kbsecret list -s dev-team
|
|
67
|
-
|
|
67
|
+
api-key
|
|
68
68
|
|
|
69
69
|
# get all environment records in dev-team in an easy-to-source format
|
|
70
70
|
$ kbsecret env -s dev-team --all
|
|
@@ -102,4 +102,3 @@ Please feel free to contribute completion scripts for other shells!
|
|
|
102
102
|
### TODO
|
|
103
103
|
|
|
104
104
|
* zsh/fish completions
|
|
105
|
-
* a TODO record type?
|
data/lib/kbsecret.rb
CHANGED
|
@@ -11,7 +11,7 @@ require_relative "kbsecret/cli"
|
|
|
11
11
|
# The primary namespace for kbsecret.
|
|
12
12
|
module KBSecret
|
|
13
13
|
# kbsecret's current version
|
|
14
|
-
VERSION = "0.
|
|
14
|
+
VERSION = "0.4.0"
|
|
15
15
|
|
|
16
16
|
# fail very early if the user doesn't have keybase and KBFS running
|
|
17
17
|
raise Keybase::KeybaseNotRunningError unless Keybase.running?
|
data/lib/kbsecret/config.rb
CHANGED
|
@@ -18,11 +18,11 @@ module KBSecret
|
|
|
18
18
|
# @api private
|
|
19
19
|
DEFAULT_CONFIG = {
|
|
20
20
|
mount: "/keybase",
|
|
21
|
-
|
|
21
|
+
session_root: "kbsecret",
|
|
22
22
|
sessions: {
|
|
23
23
|
default: {
|
|
24
24
|
users: [Keybase.current_user],
|
|
25
|
-
root: "
|
|
25
|
+
root: "default",
|
|
26
26
|
},
|
|
27
27
|
},
|
|
28
28
|
}.freeze
|
|
@@ -81,5 +81,6 @@ module KBSecret
|
|
|
81
81
|
end
|
|
82
82
|
|
|
83
83
|
@config = DEFAULT_CONFIG.merge(user_config)
|
|
84
|
+
FileUtils.mkdir_p @config[:session_root]
|
|
84
85
|
end
|
|
85
86
|
end
|
|
@@ -8,12 +8,24 @@ module KBSecret
|
|
|
8
8
|
# more useful records.
|
|
9
9
|
# @abstract
|
|
10
10
|
class Abstract
|
|
11
|
+
# @return [Session] the session associated with the record
|
|
11
12
|
attr_accessor :session
|
|
13
|
+
|
|
14
|
+
# @return [Integer] the UNIX timestamp marking the record's last modification
|
|
12
15
|
attr_reader :timestamp
|
|
16
|
+
|
|
17
|
+
# @return [Symbol] the record's label
|
|
13
18
|
attr_reader :label
|
|
19
|
+
|
|
20
|
+
# @return [Symbol] the record's type
|
|
14
21
|
attr_reader :type
|
|
22
|
+
|
|
23
|
+
# @return [Hash] the record's data
|
|
15
24
|
attr_reader :data
|
|
16
25
|
|
|
26
|
+
# @return [String] the fully qualified path to the record in KBFS
|
|
27
|
+
attr_reader :path
|
|
28
|
+
|
|
17
29
|
class << self
|
|
18
30
|
# Add a field to the record's data.
|
|
19
31
|
# @param field [Symbol] the new field's name
|
|
@@ -82,6 +94,7 @@ module KBSecret
|
|
|
82
94
|
@label = label
|
|
83
95
|
@type = self.class.type
|
|
84
96
|
@data = {}
|
|
97
|
+
@path = File.join(session.directory, "#{label}.json")
|
|
85
98
|
end
|
|
86
99
|
|
|
87
100
|
# Fill in instance fields from a record's hash-representation.
|
|
@@ -93,14 +106,7 @@ module KBSecret
|
|
|
93
106
|
@label = hsh[:label]
|
|
94
107
|
@type = hsh[:type].to_sym
|
|
95
108
|
@data = hsh[:data]
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
# The fully qualified path to the record's file.
|
|
99
|
-
# @return [String] the path
|
|
100
|
-
# @note If the record hasn't been synced to disk, this path may not
|
|
101
|
-
# exist yet.
|
|
102
|
-
def path
|
|
103
|
-
File.join(session.directory, "#{label}.json")
|
|
109
|
+
@path = File.join(session.directory, "#{label}.json")
|
|
104
110
|
end
|
|
105
111
|
|
|
106
112
|
# Create a hash-representation of the current record.
|
data/lib/kbsecret/session.rb
CHANGED
|
@@ -90,21 +90,31 @@ module KBSecret
|
|
|
90
90
|
FileUtils.rm_rf(directory)
|
|
91
91
|
end
|
|
92
92
|
|
|
93
|
-
|
|
94
|
-
|
|
93
|
+
# @return [Array<String>] the fully qualified paths of all records in the session
|
|
94
|
+
# @api private
|
|
95
95
|
def record_paths
|
|
96
96
|
Dir[File.join(directory, "*.json")]
|
|
97
97
|
end
|
|
98
98
|
|
|
99
|
+
# Load all records associated with the session.
|
|
100
|
+
# @return [Array<Record::Abstract>] all records in the session
|
|
101
|
+
# @api private
|
|
99
102
|
def load_records!
|
|
100
103
|
record_paths.map do |path|
|
|
101
104
|
Record.load_record! self, path
|
|
102
105
|
end
|
|
103
106
|
end
|
|
104
107
|
|
|
108
|
+
# @param rel [String, Symbol] the "root" of the session
|
|
109
|
+
# @param mkdir [Boolean] whether or not to make the session directory
|
|
110
|
+
# @return [String] the fully qualified path to the session
|
|
111
|
+
# @api private
|
|
105
112
|
def rel_path(rel, mkdir: false)
|
|
113
|
+
# /keybase/private/[username]/kbsecret/[session]
|
|
106
114
|
path = File.join(Config[:mount], "private",
|
|
107
|
-
Keybase::U[config[:users]],
|
|
115
|
+
Keybase::U[config[:users]],
|
|
116
|
+
Config[:session_root],
|
|
117
|
+
rel)
|
|
108
118
|
|
|
109
119
|
FileUtils.mkdir_p path if mkdir
|
|
110
120
|
|
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.
|
|
4
|
+
version: 0.4.0
|
|
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-06-
|
|
11
|
+
date: 2017-06-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: keybase-unofficial
|