shacho 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.
- data/README.md +37 -4
- data/VERSION +1 -1
- data/lib/shacho/account.rb +23 -5
- data/lib/shacho.rb +1 -1
- data/shacho.gemspec +2 -2
- data/spec/accounts/edit_account_spec.rb +18 -0
- data/spec/spec_helper.rb +8 -1
- metadata +17 -17
- data/lib/shacho/key.rb +0 -4
data/README.md
CHANGED
@@ -26,7 +26,7 @@
|
|
26
26
|
```
|
27
27
|
|
28
28
|
# what
|
29
|
-
A command-line utility that helps manage all your accounts and associated keys for heroku.
|
29
|
+
A command-line utility that helps manage all your accounts and associated keys (eventually) for heroku.
|
30
30
|
|
31
31
|
# why
|
32
32
|
[heroku_plus](https://github.com/bkuhlmann/heroku_plus) is pretty cool
|
@@ -44,9 +44,10 @@ shacho action params
|
|
44
44
|
```
|
45
45
|
|
46
46
|
Where `action` is one of the standard CRUDy actions:
|
47
|
-
|
48
|
-
|
49
|
-
|
47
|
+
|
48
|
+
- create
|
49
|
+
- use
|
50
|
+
- list
|
50
51
|
|
51
52
|
`params` refers to any additional parameters you might want to pass in. For now, that's just the name of the account you want to create
|
52
53
|
|
@@ -65,4 +66,36 @@ shacho use default
|
|
65
66
|
```
|
66
67
|
#List:
|
67
68
|
shacho list
|
69
|
+
```
|
70
|
+
|
71
|
+
# details of implementation
|
72
|
+
|
73
|
+
`shacho` creates folders in your `~/.heroku` that correspond to the account name you passsed into the command. The following call:
|
74
|
+
|
75
|
+
```
|
76
|
+
shacho create default
|
77
|
+
```
|
78
|
+
|
79
|
+
Would result in the following file structure:
|
80
|
+
|
81
|
+
```
|
82
|
+
/home/your_username/.heroku
|
83
|
+
└── accounts
|
84
|
+
└── default
|
85
|
+
└── credentials
|
86
|
+
```
|
87
|
+
|
88
|
+
When you `use` an account, `shacho` creates a symbolic link from the credentials file generated during the `create` step to the one heroku reads at `~/.heroku/credentials`
|
89
|
+
|
90
|
+
You can now use heroku account-specific commands by simply firing off a `shacho use` :3
|
91
|
+
|
92
|
+
# don't believe me?
|
93
|
+
|
94
|
+
I got your tests right here:
|
95
|
+
|
96
|
+
```
|
97
|
+
git clone git@github.com:kellydunn/shacho
|
98
|
+
cd shacho
|
99
|
+
bundle install
|
100
|
+
rspec spec
|
68
101
|
```
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.5
|
data/lib/shacho/account.rb
CHANGED
@@ -5,19 +5,19 @@ module Shacho
|
|
5
5
|
def self.create(options)
|
6
6
|
# TODO Throw error for incorrect params
|
7
7
|
name = options.first
|
8
|
-
filename =
|
8
|
+
filename = account_folder(name)
|
9
9
|
if !File.exists?(filename) || !File.directory?(filename)
|
10
10
|
FileUtils.mkdir_p(filename)
|
11
|
-
credential = Credential.new
|
12
|
-
credential.prompt(name)
|
13
|
-
credential.write(filename)
|
14
11
|
end
|
12
|
+
update_credentials(name)
|
15
13
|
end
|
16
14
|
|
17
15
|
def self.use(options)
|
18
16
|
# TODO Throw error for incorrect params
|
17
|
+
# TODO check to see if account is created
|
19
18
|
name = options.first
|
20
|
-
|
19
|
+
|
20
|
+
credential_file = "#{account_folder(name)}/credentials"
|
21
21
|
heroku_credentials = "#{HEROKU_PREFIX}/credentials"
|
22
22
|
FileUtils.ln_sf credential_file, heroku_credentials
|
23
23
|
end
|
@@ -30,8 +30,26 @@ module Shacho
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
+
def self.edit(options)
|
34
|
+
# TODO Throw error for incorrect params
|
35
|
+
# TODO check to see if account is created
|
36
|
+
name = options.first
|
37
|
+
update_credentials(name)
|
38
|
+
end
|
39
|
+
|
33
40
|
def method_missing(sym, *args, &block)
|
34
41
|
Runner.error("Unsupported action. Run `shacho help` for more information")
|
35
42
|
end
|
43
|
+
|
44
|
+
private
|
45
|
+
def self.account_folder(name)
|
46
|
+
return "#{HEROKU_PREFIX}/accounts/#{name}"
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.update_credentials(name)
|
50
|
+
credential = Credential.new
|
51
|
+
credential.prompt(name)
|
52
|
+
credential.write(account_folder(name))
|
53
|
+
end
|
36
54
|
end
|
37
55
|
end
|
data/lib/shacho.rb
CHANGED
data/shacho.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "shacho"
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Kelly"]
|
@@ -30,10 +30,10 @@ Gem::Specification.new do |s|
|
|
30
30
|
"lib/shacho.rb",
|
31
31
|
"lib/shacho/account.rb",
|
32
32
|
"lib/shacho/credential.rb",
|
33
|
-
"lib/shacho/key.rb",
|
34
33
|
"lib/shacho/runner.rb",
|
35
34
|
"lib/shacho/util.rb",
|
36
35
|
"shacho.gemspec",
|
36
|
+
"spec/accounts/edit_account_spec.rb",
|
37
37
|
"spec/accounts/list_account_spec.rb",
|
38
38
|
"spec/accounts/new_account_spec.rb",
|
39
39
|
"spec/accounts/use_account_spec.rb",
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
+
|
3
|
+
describe "Editing an account" do
|
4
|
+
include CoreHelper
|
5
|
+
|
6
|
+
before :each do
|
7
|
+
create_account
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should be able to edit the account's credentials" do
|
11
|
+
STDIN.stubs(:gets).returns("newtest@test.com", "newpassword")
|
12
|
+
Shacho::Account.edit(["test"])
|
13
|
+
contents = get_credentials "#{Shacho::HEROKU_PREFIX}/accounts/test"
|
14
|
+
email_test = contents[0] == "newtest@test.com"
|
15
|
+
password_test = contents[1] == "newpassword"
|
16
|
+
(email_test && password_test).should == true
|
17
|
+
end
|
18
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -2,7 +2,6 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
2
2
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
3
3
|
require 'rspec'
|
4
4
|
require 'mocha'
|
5
|
-
|
6
5
|
require 'shacho'
|
7
6
|
|
8
7
|
Shacho::HEROKU_PREFIX = "#{File.dirname(__FILE__)}/helpers"
|
@@ -11,8 +10,16 @@ Dir["#{File.dirname(__FILE__)}/helpers/**/*.rb"].each {|f| require f}
|
|
11
10
|
|
12
11
|
RSpec.configure do |config|
|
13
12
|
config.mock_with :mocha
|
13
|
+
|
14
|
+
config.before :each do
|
15
|
+
STDOUT.stubs(:puts)
|
16
|
+
STDOUT.stubs(:print)
|
17
|
+
end
|
14
18
|
|
15
19
|
config.after :each do
|
20
|
+
STDOUT.unstub(:puts)
|
21
|
+
STDOUT.unstub(:print)
|
22
|
+
|
16
23
|
if File.exists?("#{File.dirname(__FILE__)}/helpers/accounts")
|
17
24
|
FileUtils.rm_r("#{File.dirname(__FILE__)}/helpers/accounts")
|
18
25
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shacho
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-10-22 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: heroku
|
16
|
-
requirement: &
|
16
|
+
requirement: &10617660 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *10617660
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &10617000 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 2.3.0
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *10617000
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: ruby-debug19
|
38
|
-
requirement: &
|
38
|
+
requirement: &10616320 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *10616320
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: mocha
|
49
|
-
requirement: &
|
49
|
+
requirement: &10615640 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *10615640
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: bundler
|
60
|
-
requirement: &
|
60
|
+
requirement: &10614980 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 1.0.0
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *10614980
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: jeweler
|
71
|
-
requirement: &
|
71
|
+
requirement: &10614080 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ~>
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 1.6.4
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *10614080
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rcov
|
82
|
-
requirement: &
|
82
|
+
requirement: &10613480 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,7 +87,7 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *10613480
|
91
91
|
description: manages keysets for multiple heroku accounts
|
92
92
|
email: defaultstring@gmail.com
|
93
93
|
executables:
|
@@ -109,10 +109,10 @@ files:
|
|
109
109
|
- lib/shacho.rb
|
110
110
|
- lib/shacho/account.rb
|
111
111
|
- lib/shacho/credential.rb
|
112
|
-
- lib/shacho/key.rb
|
113
112
|
- lib/shacho/runner.rb
|
114
113
|
- lib/shacho/util.rb
|
115
114
|
- shacho.gemspec
|
115
|
+
- spec/accounts/edit_account_spec.rb
|
116
116
|
- spec/accounts/list_account_spec.rb
|
117
117
|
- spec/accounts/new_account_spec.rb
|
118
118
|
- spec/accounts/use_account_spec.rb
|
@@ -134,7 +134,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
134
134
|
version: '0'
|
135
135
|
segments:
|
136
136
|
- 0
|
137
|
-
hash:
|
137
|
+
hash: -4466314350427891853
|
138
138
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
139
139
|
none: false
|
140
140
|
requirements:
|
data/lib/shacho/key.rb
DELETED