kbsecret 1.5.0 → 1.6.0.pre.1

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
  SHA256:
3
- metadata.gz: 81283437405dfa039c5b9cee163b35c679ea652ca50efba028f5908d134652e3
4
- data.tar.gz: d70789cc5342565450be2106d1036d25b9b1042f7d1d675fa41f84b6603d9775
3
+ metadata.gz: d384a16be43f8baa6578087b59c95246000b33d5b13754fceadfe16e6b77b3da
4
+ data.tar.gz: 0ff1842cefb7ccbd9d8c7f6e672c0770f60278b45d202211cf29073057335929
5
5
  SHA512:
6
- metadata.gz: 5977f7fcc66a1c39c76c85c95fee5498c01ad2301b1ef35e3e0bd293480d6e284e1c74f70a93ce06512ea68dab6c200f7b99092faf697fb876d05c173c9369a9
7
- data.tar.gz: 7a984a951d084f88d040ec85b01ec2678936ef33555897c139a9259499dc2ab7c27e38f4d49a217d1b611d730c3c954989c5a02d6ab853d3d137cb9e3516fe10
6
+ metadata.gz: 113ea5e98212ee6c2253c0e3481c17ff0691f24f3d61f2467351a37a8d3b315264b43fbef42112b72190f34e2e5bae094d4e27533095e5af3f2f9bab48581dc6
7
+ data.tar.gz: 473e111587d99f91c1cd1c230f31a14fad11d992b4f4b195f84bc3240fea39d633433fb3a07ac745f81b0fb49a9bc4d88f5607d183bc7549e99110ea3d384b47
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "tempfile"
4
+ require "base64"
5
+
6
+ module KBSecret
7
+ class CLI
8
+ module Command
9
+ # The implementation of `kbsecret stash-edit`.
10
+ class StashEdit < Abstract
11
+ def initialize(argv)
12
+ super(argv) do |cli|
13
+ cli.slop do |o|
14
+ o.banner = <<~HELP
15
+ Usage:
16
+ kbsecret stash-edit [options] <record>
17
+ HELP
18
+
19
+ o.string "-s", "--session", "the session to search in", default: :default
20
+ o.bool "-b", "--base64", "base64 decode the file before editing, and encode it after"
21
+ end
22
+
23
+ cli.dreck do
24
+ string :label
25
+ end
26
+
27
+ cli.ensure_session!
28
+ end
29
+ end
30
+
31
+ # @see Command::Abstract#setup!
32
+ def setup!
33
+ @record = cli.session[cli.args[:label]]
34
+ end
35
+
36
+ # @see Command::Abstract#validate!
37
+ def validate!
38
+ cli.die "Missing $EDITOR." unless ENV["EDITOR"]
39
+ cli.die "No such unstructured record." unless @record && @record.type == :unstructured
40
+ end
41
+
42
+ # @see Command::Abstract#run!
43
+ def run!
44
+ tempfile = Tempfile.new(@record.label)
45
+ contents = cli.opts.base64? ? Base64.decode64(@record.text) : @record.text
46
+
47
+ tempfile.write(contents)
48
+ tempfile.flush
49
+
50
+ system "#{ENV["EDITOR"]} #{tempfile.path}"
51
+
52
+ tempfile.rewind
53
+
54
+ contents = cli.opts.base64? ? Base64.encode64(tempfile.read) : tempfile.read
55
+ @record.text = contents
56
+ ensure
57
+ tempfile.close
58
+ tempfile&.unlink
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -2,5 +2,5 @@
2
2
 
3
3
  module KBSecret
4
4
  # kbsecret's current version
5
- VERSION = "1.5.0"
5
+ VERSION = "1.6.0.pre.1"
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: 1.5.0
4
+ version: 1.6.0.pre.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Woodruff
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-20 00:00:00.000000000 Z
11
+ date: 2018-04-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -229,6 +229,7 @@ files:
229
229
  - lib/kbsecret/cli/command/rm.rb
230
230
  - lib/kbsecret/cli/command/session.rb
231
231
  - lib/kbsecret/cli/command/sessions.rb
232
+ - lib/kbsecret/cli/command/stash_edit.rb
232
233
  - lib/kbsecret/cli/command/stash_file.rb
233
234
  - lib/kbsecret/cli/command/todo.rb
234
235
  - lib/kbsecret/cli/command/types.rb
@@ -260,9 +261,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
260
261
  version: 2.3.0
261
262
  required_rubygems_version: !ruby/object:Gem::Requirement
262
263
  requirements:
263
- - - ">="
264
+ - - ">"
264
265
  - !ruby/object:Gem::Version
265
- version: '0'
266
+ version: 1.3.1
266
267
  requirements: []
267
268
  rubyforge_project:
268
269
  rubygems_version: 2.7.6