keyrack 0.3.0.pre → 0.3.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 +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"
|