leeloo 0.0.4 → 0.0.5

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: fa4daaab758be586a6e9f7fc44e2bb4445c7adf5
4
- data.tar.gz: af1ae064a581a8807a193d3a6ffe6be7a37476cd
3
+ metadata.gz: a71ff0f147184d98a7f954f587008bf7126e4d01
4
+ data.tar.gz: 01043110f55a3eb80bcf7af3666b0b42462f59cf
5
5
  SHA512:
6
- metadata.gz: d0426b52b963eab544459e05ad7c8cf986e3781c3ccc210fc873f9c04be611a3ded5089031532aa79df22d62894c97fbb3c8483805aa957d322c7bee48518639
7
- data.tar.gz: 6d2ae73665be34ca2dd566092ce4180a525e8fa06dbd5135a47ba1a39d7752b8a78800ab2460b48351426b461dd0d1205662d3da25613747a332d3459a84681e
6
+ metadata.gz: 187671978bdf140b3d9288341f30e88275ccc4771a34ad290ed51eda6c5ebfe59e6daddfc9057c1f1330a0999a6dac30c3c35822d97a899f0fdb02f378c99393
7
+ data.tar.gz: b781a38102ce27b6d9e851d99e7031f9a9faee7f348b229e26e52809d49db6d345e78a4900c525ad02a86043eab59b135771c59d7e8d9b3f22af6ed2e6c8df59
@@ -1,5 +1,6 @@
1
1
  require 'commander/import'
2
2
  require 'securerandom'
3
+ require 'clipboard'
3
4
 
4
5
  module Leeloo
5
6
  class Command
@@ -16,7 +17,7 @@ module Leeloo
16
17
  program :help, 'GitHub', 'https://github.com/sylvek'
17
18
  program :help_formatter, :compact
18
19
 
19
- default_command :list
20
+ default_command :"list keystore"
20
21
 
21
22
  command :"init" do |c|
22
23
  c.syntax = 'leeloo init'
@@ -24,10 +25,11 @@ module Leeloo
24
25
  c.action do |args, options|
25
26
 
26
27
  Config::init
28
+ say "Initialization completed"
27
29
  end
28
30
  end
29
31
 
30
- command :"list" do |c|
32
+ command :"list keystore" do |c|
31
33
  c.syntax = 'leeloo list'
32
34
  c.description = "Display keystores list"
33
35
  c.action do |args, options|
@@ -46,6 +48,7 @@ module Leeloo
46
48
  Secret::list Config.get_keystore(options.keystore)
47
49
  end
48
50
  end
51
+ alias_command :list, :"list secret"
49
52
 
50
53
  command :"add keystore" do |c|
51
54
  c.syntax = 'leeloo add keystore <name> <path>'
@@ -59,10 +62,11 @@ module Leeloo
59
62
 
60
63
  Keystore.add_keystore name, keystore
61
64
  Config.add_keystore name, keystore
65
+ say "keystore #{name} added"
62
66
  end
63
67
  end
64
68
 
65
- command :"sync secrets" do |c|
69
+ command :"sync secret" do |c|
66
70
  c.syntax = 'leeloo recrypt secrets'
67
71
  c.description = "(re)sync all secrets from a given keystore (private by default)"
68
72
  c.option '--keystore STRING', String, 'a selected keystore'
@@ -70,8 +74,10 @@ module Leeloo
70
74
  c.action do |args, options|
71
75
  options.default :keystore => 'private'
72
76
  Secret.sync_secrets Config.get_keystore(options.keystore)
77
+ say "keystore synced successfully"
73
78
  end
74
79
  end
80
+ alias_command :sync, :"sync secret"
75
81
 
76
82
  command :"add secret" do |c|
77
83
  c.syntax = 'leeloo add secret <name>'
@@ -79,6 +85,7 @@ module Leeloo
79
85
  c.option '--keystore STRING', String, 'a selected keystore'
80
86
  c.option '--generate INTEGER', Integer, 'a number of randomized characters'
81
87
  c.option '--stdin', nil, 'secret given by stdin pipe'
88
+ c.option '--clipboard', nil, 'copy to clipboard'
82
89
 
83
90
  c.action do |args, options|
84
91
  abort "name is missing" unless args.length == 1
@@ -98,13 +105,18 @@ module Leeloo
98
105
  end
99
106
 
100
107
  Secret.add_secret keystore, name, secret
108
+ say "#{name} added successfully"
109
+ Clipboard.copy secret if options.clipboard
101
110
  end
102
111
  end
112
+ alias_command :add, :"add secret"
113
+ alias_command :insert, :"add secret"
103
114
 
104
115
  command :"read secret" do |c|
105
116
  c.syntax = 'leeloo read secret <name>'
106
117
  c.description = "Display a secret from a keystore (private by default)"
107
118
  c.option '--keystore STRING', String, 'a selected keystore'
119
+ c.option '--clipboard', nil, 'copy to clipboard'
108
120
 
109
121
  c.action do |args, options|
110
122
  abort "name is missing" unless args.length == 1
@@ -113,8 +125,12 @@ module Leeloo
113
125
  options.default :keystore => 'private'
114
126
  keystore = Config.get_keystore(options.keystore)
115
127
 
116
- Secret.read_secret keystore, name
128
+ secret = Secret.read_secret keystore, name
129
+ say secret unless options.clipboard
130
+ Clipboard.copy secret if options.clipboard
117
131
  end
132
+ alias_command :read, :"read secret"
133
+ alias_command :get, :"read secret"
118
134
  end
119
135
  end
120
136
  end
data/lib/leeloo/config.rb CHANGED
@@ -14,7 +14,6 @@ module Leeloo
14
14
  end
15
15
  Keystore::add_keystore "private", "#{PATH}/private"
16
16
  Config::add_keystore "private", "#{PATH}/private"
17
- say "Initialization completed"
18
17
  end
19
18
 
20
19
  def self.list_keystores
@@ -21,8 +21,6 @@ module Leeloo
21
21
  g = Git.init path
22
22
  g.add
23
23
  g.commit "keystore #{path} added"
24
-
25
- say "keystore #{name} added"
26
24
  end
27
25
 
28
26
  end
data/lib/leeloo/secret.rb CHANGED
@@ -24,13 +24,11 @@ module Leeloo
24
24
  g = Git.open keystore
25
25
  g.add "#{keystore}/secrets/#{name}"
26
26
  g.commit "secret #{name} added"
27
-
28
- say "#{name} added successfully"
29
27
  end
30
28
 
31
29
  def self.read_secret(keystore, name)
32
30
  crypto = GPGME::Crypto.new
33
- say crypto.decrypt File.open("#{keystore}/secrets/#{name}")
31
+ crypto.decrypt File.open("#{keystore}/secrets/#{name}")
34
32
  end
35
33
 
36
34
  def self.sync_secrets keystore
@@ -56,8 +54,6 @@ module Leeloo
56
54
  end
57
55
 
58
56
  g.commit "sync"
59
-
60
- say "keystore synced successfully"
61
57
  end
62
58
 
63
59
  def self.find_secrets path
@@ -1,4 +1,4 @@
1
1
  module Leeloo
2
- VERSION = '0.0.4'.freeze
2
+ VERSION = '0.0.5'.freeze
3
3
  DESCRIPTION = "The easiest way to share securely your secrets".freeze
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: leeloo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sylvek
@@ -80,6 +80,34 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0.1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: clipboard
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.1'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.1'
97
+ - !ruby/object:Gem::Dependency
98
+ name: ffi
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.9'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.9'
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: bundler
85
113
  requirement: !ruby/object:Gem::Requirement