passwordsafe 0.0.1 → 0.0.2
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.
- data/.gitignore +2 -0
- data/.rvmrc +1 -0
- data/Gemfile.lock +25 -0
- data/README.md +10 -1
- data/bin/password +6 -0
- data/features/add.feature +18 -0
- data/features/step_definitions/safe_steps.rb +11 -0
- data/features/support/env.rb +7 -0
- data/lib/passwordsafe/cli.rb +29 -0
- data/lib/passwordsafe/keyring.rb +1 -0
- data/lib/passwordsafe/version.rb +2 -1
- data/passwordsafe.gemspec +6 -0
- data/spec/cli_spec.rb +0 -0
- metadata +77 -6
- data/safefile +0 -1
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm ruby-1.9.2-p0@pws
|
data/Gemfile.lock
CHANGED
@@ -2,11 +2,29 @@ PATH
|
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
4
|
passwordsafe (0.0.1)
|
5
|
+
highline
|
6
|
+
thor
|
5
7
|
|
6
8
|
GEM
|
7
9
|
remote: http://rubygems.org/
|
8
10
|
specs:
|
11
|
+
aruba (0.2.7)
|
12
|
+
background_process
|
13
|
+
cucumber (~> 0.10.0)
|
14
|
+
background_process (1.2)
|
15
|
+
builder (3.0.0)
|
16
|
+
cucumber (0.10.0)
|
17
|
+
builder (>= 2.1.2)
|
18
|
+
diff-lcs (~> 1.1.2)
|
19
|
+
gherkin (~> 2.3.2)
|
20
|
+
json (~> 1.4.6)
|
21
|
+
term-ansicolor (~> 1.0.5)
|
9
22
|
diff-lcs (1.1.2)
|
23
|
+
gherkin (2.3.2)
|
24
|
+
json (~> 1.4.6)
|
25
|
+
term-ansicolor (~> 1.0.5)
|
26
|
+
highline (1.6.1)
|
27
|
+
json (1.4.6)
|
10
28
|
rspec (2.3.0)
|
11
29
|
rspec-core (~> 2.3.0)
|
12
30
|
rspec-expectations (~> 2.3.0)
|
@@ -15,10 +33,17 @@ GEM
|
|
15
33
|
rspec-expectations (2.3.0)
|
16
34
|
diff-lcs (~> 1.1.2)
|
17
35
|
rspec-mocks (2.3.0)
|
36
|
+
term-ansicolor (1.0.5)
|
37
|
+
thor (0.14.3)
|
18
38
|
|
19
39
|
PLATFORMS
|
20
40
|
ruby
|
21
41
|
|
22
42
|
DEPENDENCIES
|
43
|
+
aruba
|
44
|
+
bundler
|
45
|
+
cucumber
|
46
|
+
highline
|
23
47
|
passwordsafe!
|
24
48
|
rspec
|
49
|
+
thor
|
data/README.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
|
-
==
|
1
|
+
==Password Safe
|
2
2
|
A command line application that can store and retrieve passwords from an encrypted file.
|
3
3
|
|
4
4
|
Based on 'Tutorial: Build your own password safe with Ruby!' at http://rbjl.net/41-tutorial-build-your-own-password-safe-with-ruby
|
5
5
|
|
6
|
+
Basic implementation
|
7
|
+
password add name password
|
8
|
+
|
9
|
+
Not Implemented yet
|
10
|
+
password get name
|
11
|
+
password list
|
12
|
+
password remove name
|
13
|
+
password help
|
14
|
+
|
data/bin/password
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
Feature: Add
|
2
|
+
In order to store my passwords
|
3
|
+
As a user
|
4
|
+
I want to be able to add my passwords to the passwordsafe
|
5
|
+
|
6
|
+
|
7
|
+
Scenario: Add a new password
|
8
|
+
When I run "password add name pa$$word" interactively
|
9
|
+
And I type "masterpa$$"
|
10
|
+
Then the output should contain "password name added to safe"
|
11
|
+
|
12
|
+
Scenario: Add a password with a name that exists
|
13
|
+
Given A safe exists with masterpassword "masterpa$$" and a "name" key
|
14
|
+
When I run "password add name pa$$word" interactively
|
15
|
+
And I type "masterpa$$"
|
16
|
+
Then the output should contain "Key already exists in keyring"
|
17
|
+
And the output should not contain "password name added to safe"
|
18
|
+
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'passwordsafe/safe'
|
2
|
+
require 'passwordsafe/keyring'
|
3
|
+
require 'passwordsafe/cli'
|
4
|
+
|
5
|
+
Given /^A safe exists with masterpassword "([^"]*)" and a "([^"]*)" key$/ do |masterpass, key_name|
|
6
|
+
in_current_dir do
|
7
|
+
safe = PasswordSafe::Safe.new(PasswordSafe::CLI::DEFAULTSAFE, masterpass)
|
8
|
+
PasswordSafe::Keyring.new(safe).add key_name, "dummypass"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'thor'
|
2
|
+
require 'passwordsafe/safe'
|
3
|
+
require 'passwordsafe/keyring'
|
4
|
+
|
5
|
+
module PasswordSafe
|
6
|
+
class CLI < Thor
|
7
|
+
DEFAULTSAFE = 'safefile'
|
8
|
+
|
9
|
+
desc "add NAME PASSWORD", "Add a new PASSWORD to the keyring with name NAME"
|
10
|
+
def add name, password
|
11
|
+
safe = make_safe
|
12
|
+
begin
|
13
|
+
PasswordSafe::Keyring.new(safe).add name, password
|
14
|
+
rescue PasswordSafe::Keyring::KeyExistsException => msg
|
15
|
+
puts "#{msg}"
|
16
|
+
else
|
17
|
+
puts "password #{name} added to safe"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
no_tasks do
|
22
|
+
def make_safe filename = DEFAULTSAFE
|
23
|
+
masterpass = ask("Enter your master password: ") { |q| q.echo = "x" }
|
24
|
+
PasswordSafe::Safe.new(filename, masterpass)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
data/lib/passwordsafe/keyring.rb
CHANGED
data/lib/passwordsafe/version.rb
CHANGED
data/passwordsafe.gemspec
CHANGED
@@ -19,6 +19,12 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
20
|
s.require_paths = ["lib"]
|
21
21
|
|
22
|
+
s.add_development_dependency('bundler')
|
22
23
|
s.add_development_dependency('rspec')
|
24
|
+
s.add_development_dependency('cucumber')
|
25
|
+
s.add_development_dependency('aruba')
|
26
|
+
|
27
|
+
s.add_dependency "thor"
|
28
|
+
s.add_dependency "highline"
|
23
29
|
end
|
24
30
|
|
data/spec/cli_spec.rb
ADDED
File without changes
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 2
|
9
|
+
version: 0.0.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- thecatwasnot
|
@@ -18,7 +18,7 @@ date: 2010-12-22 00:00:00 -06:00
|
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
name:
|
21
|
+
name: bundler
|
22
22
|
prerelease: false
|
23
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
24
|
none: false
|
@@ -30,11 +30,76 @@ dependencies:
|
|
30
30
|
version: "0"
|
31
31
|
type: :development
|
32
32
|
version_requirements: *id001
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: rspec
|
35
|
+
prerelease: false
|
36
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
37
|
+
none: false
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 0
|
43
|
+
version: "0"
|
44
|
+
type: :development
|
45
|
+
version_requirements: *id002
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: cucumber
|
48
|
+
prerelease: false
|
49
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
segments:
|
55
|
+
- 0
|
56
|
+
version: "0"
|
57
|
+
type: :development
|
58
|
+
version_requirements: *id003
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
name: aruba
|
61
|
+
prerelease: false
|
62
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
64
|
+
requirements:
|
65
|
+
- - ">="
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
segments:
|
68
|
+
- 0
|
69
|
+
version: "0"
|
70
|
+
type: :development
|
71
|
+
version_requirements: *id004
|
72
|
+
- !ruby/object:Gem::Dependency
|
73
|
+
name: thor
|
74
|
+
prerelease: false
|
75
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
76
|
+
none: false
|
77
|
+
requirements:
|
78
|
+
- - ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
segments:
|
81
|
+
- 0
|
82
|
+
version: "0"
|
83
|
+
type: :runtime
|
84
|
+
version_requirements: *id005
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: highline
|
87
|
+
prerelease: false
|
88
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ">="
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
segments:
|
94
|
+
- 0
|
95
|
+
version: "0"
|
96
|
+
type: :runtime
|
97
|
+
version_requirements: *id006
|
33
98
|
description: Small command line app for storing passwords
|
34
99
|
email:
|
35
100
|
- thecatwasnot@gmail.com
|
36
|
-
executables:
|
37
|
-
|
101
|
+
executables:
|
102
|
+
- password
|
38
103
|
extensions: []
|
39
104
|
|
40
105
|
extra_rdoc_files: []
|
@@ -42,17 +107,23 @@ extra_rdoc_files: []
|
|
42
107
|
files:
|
43
108
|
- .gitignore
|
44
109
|
- .rspec
|
110
|
+
- .rvmrc
|
45
111
|
- Gemfile
|
46
112
|
- Gemfile.lock
|
47
113
|
- README.md
|
48
114
|
- Rakefile
|
115
|
+
- bin/password
|
116
|
+
- features/add.feature
|
117
|
+
- features/step_definitions/safe_steps.rb
|
118
|
+
- features/support/env.rb
|
49
119
|
- lib/passwordsafe.rb
|
120
|
+
- lib/passwordsafe/cli.rb
|
50
121
|
- lib/passwordsafe/encryptor.rb
|
51
122
|
- lib/passwordsafe/keyring.rb
|
52
123
|
- lib/passwordsafe/safe.rb
|
53
124
|
- lib/passwordsafe/version.rb
|
54
125
|
- passwordsafe.gemspec
|
55
|
-
-
|
126
|
+
- spec/cli_spec.rb
|
56
127
|
- spec/encryptor_spec.rb
|
57
128
|
- spec/keyring_spec.rb
|
58
129
|
- spec/safe_spec.rb
|
data/safefile
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
�������U�vZ�H�
|