keyrack 0.3.0.pre → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/Gemfile +8 -15
- data/Guardfile +6 -0
- data/LICENSE.txt +4 -2
- data/Rakefile +2 -56
- data/keyrack.gemspec +22 -104
- data/lib/keyrack.rb +9 -1
- data/lib/keyrack/database.rb +64 -98
- data/lib/keyrack/event.rb +13 -0
- data/lib/keyrack/exceptions.rb +4 -0
- data/lib/keyrack/group.rb +225 -0
- data/lib/keyrack/migrator.rb +45 -0
- data/lib/keyrack/runner.rb +98 -44
- data/lib/keyrack/site.rb +92 -0
- data/lib/keyrack/ui/console.rb +234 -95
- data/lib/keyrack/utils.rb +0 -18
- data/lib/keyrack/version.rb +3 -0
- data/test/fixtures/database-3.dat +0 -0
- data/test/helper.rb +11 -1
- data/test/integration/test_interactive_console.rb +139 -0
- data/test/unit/store/test_filesystem.rb +21 -0
- data/test/unit/store/test_ssh.rb +32 -0
- data/test/unit/test_database.rb +201 -0
- data/test/unit/test_event.rb +41 -0
- data/test/unit/test_group.rb +703 -0
- data/test/unit/test_migrator.rb +105 -0
- data/test/unit/test_runner.rb +407 -0
- data/test/unit/test_site.rb +181 -0
- data/test/unit/test_store.rb +13 -0
- data/test/unit/test_utils.rb +8 -0
- data/test/unit/ui/test_console.rb +495 -0
- metadata +98 -94
- data/Gemfile.lock +0 -45
- data/TODO +0 -4
- data/VERSION +0 -1
- data/features/console.feature +0 -103
- data/features/step_definitions/keyrack_steps.rb +0 -61
- data/features/support/env.rb +0 -16
- data/test/fixtures/aes +0 -0
- data/test/fixtures/config.yml +0 -4
- data/test/fixtures/id_rsa +0 -54
- data/test/keyrack/store/test_filesystem.rb +0 -25
- data/test/keyrack/store/test_ssh.rb +0 -36
- data/test/keyrack/test_database.rb +0 -111
- data/test/keyrack/test_runner.rb +0 -111
- data/test/keyrack/test_store.rb +0 -15
- data/test/keyrack/test_utils.rb +0 -41
- data/test/keyrack/ui/test_console.rb +0 -308
metadata
CHANGED
@@ -1,194 +1,198 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: keyrack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.0
|
5
|
-
prerelease: 6
|
4
|
+
version: 0.3.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Jeremy Stephens
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2013-06-11 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: net-scp
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: highline
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- -
|
31
|
+
- - '>='
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '0'
|
33
34
|
type: :runtime
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
36
41
|
- !ruby/object:Gem::Dependency
|
37
|
-
name:
|
38
|
-
requirement:
|
39
|
-
none: false
|
42
|
+
name: clipboard
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
40
44
|
requirements:
|
41
|
-
- -
|
45
|
+
- - '>='
|
42
46
|
- !ruby/object:Gem::Version
|
43
47
|
version: '0'
|
44
48
|
type: :runtime
|
45
49
|
prerelease: false
|
46
|
-
version_requirements:
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: bundler
|
49
|
-
requirement: &18755260 !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
55
|
-
type: :development
|
56
|
-
prerelease: false
|
57
|
-
version_requirements: *18755260
|
54
|
+
version: '0'
|
58
55
|
- !ruby/object:Gem::Dependency
|
59
|
-
name:
|
60
|
-
requirement:
|
61
|
-
none: false
|
56
|
+
name: scrypty
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
62
58
|
requirements:
|
63
|
-
- -
|
59
|
+
- - '>='
|
64
60
|
- !ruby/object:Gem::Version
|
65
|
-
version:
|
66
|
-
type: :
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
67
63
|
prerelease: false
|
68
|
-
version_requirements:
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
71
|
-
requirement:
|
72
|
-
none: false
|
70
|
+
name: bundler
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
73
72
|
requirements:
|
74
|
-
- -
|
73
|
+
- - '>='
|
75
74
|
- !ruby/object:Gem::Version
|
76
75
|
version: '0'
|
77
76
|
type: :development
|
78
77
|
prerelease: false
|
79
|
-
version_requirements:
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
80
83
|
- !ruby/object:Gem::Dependency
|
81
84
|
name: mocha
|
82
|
-
requirement:
|
83
|
-
none: false
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
84
86
|
requirements:
|
85
|
-
- -
|
87
|
+
- - '>='
|
86
88
|
- !ruby/object:Gem::Version
|
87
89
|
version: '0'
|
88
90
|
type: :development
|
89
91
|
prerelease: false
|
90
|
-
version_requirements:
|
91
|
-
- !ruby/object:Gem::Dependency
|
92
|
-
name: cucumber
|
93
|
-
requirement: &18752620 !ruby/object:Gem::Requirement
|
94
|
-
none: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
93
|
requirements:
|
96
|
-
- -
|
94
|
+
- - '>='
|
97
95
|
- !ruby/object:Gem::Version
|
98
96
|
version: '0'
|
99
|
-
type: :development
|
100
|
-
prerelease: false
|
101
|
-
version_requirements: *18752620
|
102
97
|
- !ruby/object:Gem::Dependency
|
103
98
|
name: test-unit
|
104
|
-
requirement:
|
105
|
-
none: false
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
106
100
|
requirements:
|
107
|
-
- -
|
101
|
+
- - '>='
|
108
102
|
- !ruby/object:Gem::Version
|
109
103
|
version: '0'
|
110
104
|
type: :development
|
111
105
|
prerelease: false
|
112
|
-
version_requirements:
|
113
|
-
|
114
|
-
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - '>='
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
description: Simple password manager with local/remote database storage and scrypt
|
112
|
+
encryption.
|
113
|
+
email:
|
114
|
+
- viking@pillageandplunder.net
|
115
115
|
executables:
|
116
116
|
- keyrack
|
117
117
|
extensions: []
|
118
|
-
extra_rdoc_files:
|
119
|
-
- LICENSE.txt
|
120
|
-
- README.rdoc
|
121
|
-
- TODO
|
118
|
+
extra_rdoc_files: []
|
122
119
|
files:
|
123
120
|
- .document
|
121
|
+
- .gitignore
|
124
122
|
- .rvmrc
|
125
123
|
- Gemfile
|
126
|
-
-
|
124
|
+
- Guardfile
|
127
125
|
- LICENSE.txt
|
128
126
|
- README.rdoc
|
129
127
|
- Rakefile
|
130
|
-
- TODO
|
131
|
-
- VERSION
|
132
128
|
- bin/keyrack
|
133
|
-
- features/console.feature
|
134
|
-
- features/step_definitions/keyrack_steps.rb
|
135
|
-
- features/support/env.rb
|
136
129
|
- keyrack.gemspec
|
137
130
|
- lib/keyrack.rb
|
138
131
|
- lib/keyrack/database.rb
|
132
|
+
- lib/keyrack/event.rb
|
133
|
+
- lib/keyrack/exceptions.rb
|
134
|
+
- lib/keyrack/group.rb
|
135
|
+
- lib/keyrack/migrator.rb
|
139
136
|
- lib/keyrack/runner.rb
|
137
|
+
- lib/keyrack/site.rb
|
140
138
|
- lib/keyrack/store.rb
|
141
139
|
- lib/keyrack/store/filesystem.rb
|
142
140
|
- lib/keyrack/store/ssh.rb
|
143
141
|
- lib/keyrack/ui.rb
|
144
142
|
- lib/keyrack/ui/console.rb
|
145
143
|
- lib/keyrack/utils.rb
|
146
|
-
-
|
147
|
-
- test/fixtures/
|
144
|
+
- lib/keyrack/version.rb
|
145
|
+
- test/fixtures/database-3.dat
|
148
146
|
- test/fixtures/foo.txt
|
149
|
-
- test/fixtures/id_rsa
|
150
147
|
- test/helper.rb
|
151
|
-
- test/
|
152
|
-
- test/
|
153
|
-
- test/
|
154
|
-
- test/
|
155
|
-
- test/
|
156
|
-
- test/
|
157
|
-
- test/
|
148
|
+
- test/integration/test_interactive_console.rb
|
149
|
+
- test/unit/store/test_filesystem.rb
|
150
|
+
- test/unit/store/test_ssh.rb
|
151
|
+
- test/unit/test_database.rb
|
152
|
+
- test/unit/test_event.rb
|
153
|
+
- test/unit/test_group.rb
|
154
|
+
- test/unit/test_migrator.rb
|
155
|
+
- test/unit/test_runner.rb
|
156
|
+
- test/unit/test_site.rb
|
157
|
+
- test/unit/test_store.rb
|
158
|
+
- test/unit/test_utils.rb
|
159
|
+
- test/unit/ui/test_console.rb
|
158
160
|
homepage: http://github.com/viking/keyrack
|
159
|
-
licenses:
|
160
|
-
|
161
|
+
licenses: []
|
162
|
+
metadata: {}
|
161
163
|
post_install_message:
|
162
164
|
rdoc_options: []
|
163
165
|
require_paths:
|
164
166
|
- lib
|
165
167
|
required_ruby_version: !ruby/object:Gem::Requirement
|
166
|
-
none: false
|
167
168
|
requirements:
|
168
|
-
- -
|
169
|
+
- - '>='
|
169
170
|
- !ruby/object:Gem::Version
|
170
171
|
version: '0'
|
171
|
-
segments:
|
172
|
-
- 0
|
173
|
-
hash: -4508723743310181824
|
174
172
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
175
|
-
none: false
|
176
173
|
requirements:
|
177
|
-
- -
|
174
|
+
- - '>='
|
178
175
|
- !ruby/object:Gem::Version
|
179
|
-
version:
|
176
|
+
version: '0'
|
180
177
|
requirements: []
|
181
178
|
rubyforge_project:
|
182
|
-
rubygems_version:
|
179
|
+
rubygems_version: 2.0.2
|
183
180
|
signing_key:
|
184
|
-
specification_version:
|
181
|
+
specification_version: 4
|
185
182
|
summary: Simple password manager
|
186
183
|
test_files:
|
184
|
+
- test/fixtures/database-3.dat
|
185
|
+
- test/fixtures/foo.txt
|
187
186
|
- test/helper.rb
|
188
|
-
- test/
|
189
|
-
- test/
|
190
|
-
- test/
|
191
|
-
- test/
|
192
|
-
- test/
|
193
|
-
- test/
|
194
|
-
- test/
|
187
|
+
- test/integration/test_interactive_console.rb
|
188
|
+
- test/unit/store/test_filesystem.rb
|
189
|
+
- test/unit/store/test_ssh.rb
|
190
|
+
- test/unit/test_database.rb
|
191
|
+
- test/unit/test_event.rb
|
192
|
+
- test/unit/test_group.rb
|
193
|
+
- test/unit/test_migrator.rb
|
194
|
+
- test/unit/test_runner.rb
|
195
|
+
- test/unit/test_site.rb
|
196
|
+
- test/unit/test_store.rb
|
197
|
+
- test/unit/test_utils.rb
|
198
|
+
- test/unit/ui/test_console.rb
|
data/Gemfile.lock
DELETED
@@ -1,45 +0,0 @@
|
|
1
|
-
GEM
|
2
|
-
remote: http://rubygems.org/
|
3
|
-
specs:
|
4
|
-
builder (3.0.0)
|
5
|
-
copier (1.3)
|
6
|
-
cucumber (1.1.4)
|
7
|
-
builder (>= 2.1.2)
|
8
|
-
diff-lcs (>= 1.1.2)
|
9
|
-
gherkin (~> 2.7.1)
|
10
|
-
json (>= 1.4.6)
|
11
|
-
term-ansicolor (>= 1.0.6)
|
12
|
-
diff-lcs (1.1.3)
|
13
|
-
gherkin (2.7.1)
|
14
|
-
json (>= 1.4.6)
|
15
|
-
git (1.2.5)
|
16
|
-
highline (1.6.9)
|
17
|
-
jeweler (1.5.2)
|
18
|
-
bundler (~> 1.0.0)
|
19
|
-
git (>= 1.2.5)
|
20
|
-
rake
|
21
|
-
json (1.6.4)
|
22
|
-
metaclass (0.0.1)
|
23
|
-
mocha (0.10.0)
|
24
|
-
metaclass (~> 0.0.1)
|
25
|
-
net-scp (1.0.4)
|
26
|
-
net-ssh (>= 1.99.1)
|
27
|
-
net-ssh (2.2.1)
|
28
|
-
rake (0.9.2.2)
|
29
|
-
rcov (0.9.11)
|
30
|
-
term-ansicolor (1.0.7)
|
31
|
-
test-unit (2.4.3)
|
32
|
-
|
33
|
-
PLATFORMS
|
34
|
-
ruby
|
35
|
-
|
36
|
-
DEPENDENCIES
|
37
|
-
bundler (~> 1.0.0)
|
38
|
-
copier
|
39
|
-
cucumber
|
40
|
-
highline
|
41
|
-
jeweler (~> 1.5.1)
|
42
|
-
mocha
|
43
|
-
net-scp
|
44
|
-
rcov
|
45
|
-
test-unit
|
data/TODO
DELETED
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.3.0.pre
|
data/features/console.feature
DELETED
@@ -1,103 +0,0 @@
|
|
1
|
-
Feature: Console runner
|
2
|
-
I want to run Keyrack from the console
|
3
|
-
|
4
|
-
Scenario: starting for the first time with a filesystem store
|
5
|
-
* I run keyrack interactively
|
6
|
-
* I wait a few seconds
|
7
|
-
* the output should contain "New passphrase:"
|
8
|
-
* I type "secret"
|
9
|
-
* the output should contain "Confirm passphrase:"
|
10
|
-
* I type "secret"
|
11
|
-
* I wait a few seconds
|
12
|
-
* the output should contain "Choose storage type:"
|
13
|
-
* I type "filesystem"
|
14
|
-
|
15
|
-
* the output should contain "[g]roup"
|
16
|
-
* I type "g" to add a new group
|
17
|
-
* the output should contain "Group:"
|
18
|
-
* I type "Social"
|
19
|
-
* the output should contain "[n]ew"
|
20
|
-
* I type "n" to add a new entry
|
21
|
-
* the output should contain "Label:"
|
22
|
-
* I type "Twitter"
|
23
|
-
* the output should contain "Username:"
|
24
|
-
* I type "dudeguy"
|
25
|
-
* the output should contain "Generate password?"
|
26
|
-
* I type "n" for no
|
27
|
-
* the output should contain "Password:"
|
28
|
-
* I type "kittens"
|
29
|
-
* the output should contain "Password (again):"
|
30
|
-
* I type "kittens"
|
31
|
-
* the output should contain "1. Twitter [dudeguy]"
|
32
|
-
* the output should also contain "[s]ave"
|
33
|
-
* I type "s" to save the database
|
34
|
-
* the output should contain "[t]op"
|
35
|
-
* I type "t"
|
36
|
-
* the output should match /1\. .+Social.+/
|
37
|
-
|
38
|
-
* the output should also contain "[n]ew"
|
39
|
-
* I type "n" to add a new entry
|
40
|
-
* the output should contain "Label:"
|
41
|
-
* I type "Company X"
|
42
|
-
* the output should contain "Username:"
|
43
|
-
* I type "buddypal"
|
44
|
-
* the output should contain "Generate password?"
|
45
|
-
* I type "y" for yes
|
46
|
-
* the output should contain "Sound good? [yn]"
|
47
|
-
* I type "y" for yes
|
48
|
-
* the output should contain "2. Company X [buddypal]"
|
49
|
-
* the output should also contain "[s]ave"
|
50
|
-
* I type "n" to add a new entry
|
51
|
-
* the output should contain "Label:"
|
52
|
-
* I type "Company X"
|
53
|
-
* the output should contain "Username:"
|
54
|
-
* I type "friendguy"
|
55
|
-
* the output should contain "Generate password?"
|
56
|
-
* I type "y" for yes
|
57
|
-
* the output should contain "Sound good? [yn]"
|
58
|
-
* I type "y" for yes
|
59
|
-
* the output should contain "3. Company X [friendguy]"
|
60
|
-
* I type "s" to save the database
|
61
|
-
|
62
|
-
* the output should contain "[q]uit"
|
63
|
-
* I type "q" to quit
|
64
|
-
* I wait a few seconds
|
65
|
-
* I run keyrack interactively again
|
66
|
-
* I wait a few seconds
|
67
|
-
* the output should contain "Keyrack password:"
|
68
|
-
* I type "secret"
|
69
|
-
* I wait a few seconds
|
70
|
-
* the output should match /1\. .+Social.+/
|
71
|
-
* the output should also contain "2. Company X [buddypal]"
|
72
|
-
* the output should also contain "3. Company X [friendguy]"
|
73
|
-
* I type "1" for Social
|
74
|
-
* the output should contain "1. Twitter [dudeguy]"
|
75
|
-
* I type "1" for Twitter
|
76
|
-
* my clipboard should contain "kittens"
|
77
|
-
|
78
|
-
* the output should contain "[d]elete"
|
79
|
-
* I type "d"
|
80
|
-
* the output should contain "1. Twitter [dudeguy]"
|
81
|
-
* I type "1"
|
82
|
-
* the output should contain "Are you sure?"
|
83
|
-
* I type "y"
|
84
|
-
* the output should contain "[t]op"
|
85
|
-
* I type "t"
|
86
|
-
|
87
|
-
* the output should contain "2. Company X [buddypal]"
|
88
|
-
* I type "2" for Company X (buddypal)
|
89
|
-
* my clipboard should match "^.{8}$"
|
90
|
-
|
91
|
-
* the output should contain "Main Menu"
|
92
|
-
* I type "d"
|
93
|
-
* the output should contain "1. Company X [buddypal]"
|
94
|
-
* I type "1"
|
95
|
-
* the output should contain "Company X [buddypal]"
|
96
|
-
* the output should also contain "Are you sure?"
|
97
|
-
* I type "y"
|
98
|
-
|
99
|
-
* the output should contain "Main Menu"
|
100
|
-
* the output should also contain "2. Company X [friendguy]"
|
101
|
-
* I type "q" to quit
|
102
|
-
* the output should contain "Really quit?" (since the database is dirty)
|
103
|
-
* I type "y"
|