leeloo 0.0.14 → 0.0.15

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
- SHA1:
3
- metadata.gz: 385456ed0f6e865c7d424c8a3d80a2aa07acc29b
4
- data.tar.gz: d639369603275d8ea5b2613bc067a829206a0c81
2
+ SHA256:
3
+ metadata.gz: 33a4bbad0c6108659e4b1a80400567ee850e1142937bef81c3a1bc36d5a76735
4
+ data.tar.gz: 9b6068adb6e11a8525315e71e2fd084f6acab640254ba21811583cab27c53bd0
5
5
  SHA512:
6
- metadata.gz: 1d801a249e0b18cf06211cc54a648cab21c605c41bb4abbe425f9c133b462f1511eece80d4d00d2b3ac2a950b0344f2f981074b0a4abfef56feab83e49bbb4e2
7
- data.tar.gz: 96ec1174b8bff40bdda6f072c8a2d2a2d45c722bff98c5483856e7f6c7d34fce0cea29eaac2c36f2594860deb58a157ad5d2a0c147faac20a19ff4766708fd57
6
+ metadata.gz: 9bd551ca38689c366d7a4eb92207239545af036ad637d73becd53bcaacad30192a7ee81709c45d26038e9d807b5baf7bd7a91956a4c0768f0be7bb1fa36d03d7
7
+ data.tar.gz: 91d8f770c195e0054ad605807f4546af4a84cd1394639bfc7e0d4a0d316fa2307d2d5020cfe155eeafd6a7f6289f4e4b7e18c2ab4b7566d72fe94e90ba157e9e
@@ -2,7 +2,15 @@ require 'commander/import'
2
2
  require 'securerandom'
3
3
  require 'clipboard'
4
4
 
5
+
6
+ class String
7
+ def truncate(max)
8
+ length > max ? self[0...max] : self
9
+ end
10
+ end
11
+
5
12
  module Leeloo
13
+
6
14
  class Command
7
15
  include Commander::Methods
8
16
 
@@ -72,6 +80,20 @@ module Leeloo
72
80
  end
73
81
  end
74
82
 
83
+ command :"remote-keystore" do |c|
84
+ c.syntax = "leeloo remote <repository>"
85
+ c.description = "add a remote repository to synchronize keystore"
86
+ c.option '--keystore STRING', String, 'a selected keystore'
87
+
88
+ c.action do |args, options|
89
+ abort "repository is missing" unless args.length == 1
90
+ repository = args.first
91
+ Keystore.add_remote Config.get_keystore(options.keystore), repository
92
+ say "remote added successfully"
93
+ end
94
+ end
95
+ alias_command :remote, :"remote-keystore"
96
+
75
97
  command :"sync-keystore" do |c|
76
98
  c.syntax = "leeloo sync"
77
99
  c.description = "sync secrets with git repository (if configured)"
@@ -79,8 +101,12 @@ module Leeloo
79
101
 
80
102
  c.action do |args, options|
81
103
  options.default :keystore => Config.default['keystore']
82
- Keystore.sync_keystore Config.get_keystore(options.keystore)
83
- say "secrets synced successfully"
104
+ synchronized = Keystore.sync_keystore Config.get_keystore(options.keystore)
105
+ if synchronized
106
+ say "secrets synchronized successfully"
107
+ else
108
+ abort "call remote-keystore before sync-keystore"
109
+ end
84
110
  end
85
111
  end
86
112
  alias_command :sync, :"sync-keystore"
@@ -92,8 +118,8 @@ module Leeloo
92
118
 
93
119
  c.action do |args, options|
94
120
  options.default :keystore => Config.default['keystore']
95
- Secret.sign_secrets Config.get_keystore(options.keystore)
96
- say "secrets signed successfully"
121
+ signed = Secret.sign_secrets Config.get_keystore(options.keystore)
122
+ say "secrets signed successfully" if signed
97
123
  end
98
124
  end
99
125
  alias_command :sign, :"sign-secret"
@@ -115,7 +141,7 @@ module Leeloo
115
141
 
116
142
  secret = nil
117
143
  secret = STDIN.read if options.stdin
118
- secret = SecureRandom.base64(options.generate) if options.generate
144
+ secret = SecureRandom.base64(32).truncate(options.generate.to_i) if options.generate
119
145
 
120
146
  unless secret
121
147
  secret = password "secret"
@@ -126,6 +152,7 @@ module Leeloo
126
152
  Secret.add_secret keystore, name, secret
127
153
  say "#{name} added successfully"
128
154
  Clipboard.copy secret if options.clipboard
155
+ say secret unless options.clipboard
129
156
  end
130
157
  end
131
158
  alias_command :write, :"add-secret"
@@ -23,10 +23,18 @@ module Leeloo
23
23
  g.commit "keystore #{path} added"
24
24
  end
25
25
 
26
+ def self.add_remote path, remote
27
+ g = Git.open path
28
+ g.add_remote 'origin', remote
29
+ end
30
+
26
31
  def self.sync_keystore path
27
- g = Git.init path
28
- g.pull
29
- g.push
32
+ g = Git.open path
33
+ unless g.remotes.empty?
34
+ g.pull
35
+ g.push
36
+ end
37
+ return !g.remotes.empty?
30
38
  end
31
39
 
32
40
  end
@@ -9,7 +9,7 @@ module Leeloo
9
9
 
10
10
  def self.list(keystore, ascii)
11
11
  if ascii
12
- secrets = Dir.glob("#{keystore}/secrets/**/*.gpg")
12
+ Dir.glob("#{keystore}/secrets/**/*.gpg")
13
13
  .sort
14
14
  .reject { |path| File.directory? path }
15
15
  .each { |secret| puts secret.gsub(/#{keystore}\/secrets\//, '').gsub(/\.gpg/, '') }
@@ -68,6 +68,7 @@ module Leeloo
68
68
  end
69
69
 
70
70
  g.commit "sync"
71
+ return true
71
72
  end
72
73
 
73
74
  def self.find_secrets path
@@ -1,4 +1,4 @@
1
1
  module Leeloo
2
- VERSION = '0.0.14'.freeze
2
+ VERSION = '0.0.15'.freeze
3
3
  DESCRIPTION = "The easiest way to share securely your secrets".freeze
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: leeloo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.14
4
+ version: 0.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sylvek
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-11-21 00:00:00.000000000 Z
11
+ date: 2018-08-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: commander
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.3'
47
+ version: '1.5'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.3'
54
+ version: '1.5'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: terminal-table
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -185,7 +185,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
185
  version: '0'
186
186
  requirements: []
187
187
  rubyforge_project:
188
- rubygems_version: 2.6.10
188
+ rubygems_version: 2.7.6
189
189
  signing_key:
190
190
  specification_version: 4
191
191
  summary: The easiest way to share securely your secrets