shacho 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -113,6 +113,64 @@ When you `use` an account, `shacho` creates a symbolic link from the credentials
113
113
 
114
114
  You can now use heroku account-specific commands by simply firing off a `shacho use` :3
115
115
 
116
+ # keys
117
+ ```
118
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM:.~ZOOZ? ,?MMMMMMMMMMMMMMMMMMMMM
119
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM: ,7OOOZ$$Z+ ,?MMMMMMMMMMMMMMMMMMM
120
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM=. ~OOOOZ$I7$$Z= ~IMMMMMMMMMMMMMMMMM
121
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM: ,OOOZZ$$I?II7$$Z~ =?MMMMMMMMMMMMMMM
122
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM?, 7OOZZ$$7I?+??I7$$Z7, ?MMMMMMMMMMMMMM
123
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM$= IOOZZ$77I?+===+?II7$$Z7,,?MMMMMMMMMMMM
124
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM$,~OZZZ$77I?+=~::~=+??I7$$ZZ?.I=MMMMMMMMMM
125
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMO:.OZZZ$77?+==:..M?~~~=+??I7$$ZZ? $=MMMMMMMM
126
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMD+ $OZZ$$7=, ,+MMMMM~+II++?I77$ZZZ:.$?MMMMMM
127
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM? IO$I:. :IO88MMMMMMMMM .~?$ZZ$7$$ZZZ.~$7MMMM
128
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM$= ~ZOZ~ $8DDZI=MMMMMMMMMMMMM:. .:=7ZOOOZZZ II$MM
129
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM$=.~$OZ? +DI+IMMMMMMMMMMMMMMMMMI+:. .,=IZOO7 $$$M
130
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMZ=.~$OZ7 ,8Z+MMMMMMMMMMMMMMMMMMMM8O$?~. =OOI 78?M
131
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM8=.:7ZZ$. Z8=ZMMMMMMMMMMMMMMMMMMMMMDD$,,$ZI, =D=M
132
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMI.:7ZZZ~ ?D?$MMMMMMMMMMMMMMMMMMMMN8+ +O$= 7D+M
133
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMZ,:IZZZ+ :D7IMMMMMMMMMMMMMMMMMMM8Z,.$O7~ ,$D8?7
134
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM8::?$ZZ? .OO=MMMMMMMMMMMMMMMMMII+ =OZI. =ODZ+?M
135
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMD=,?7ZOI. $O=?MMMMMMMMMMMMMMM::, ?OZ+. .I8D$=MMM
136
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMI.+7$O7, =Z++MMMMMMMMMMMMM,, ,ZO7: :$D8I+MMMM
137
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM$,=I$O$: .77I?+++++?IMMM+,. :+OZI. ~$887MMMMMM
138
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM8:~I$O$++=~:,,,,,,,... .7OO$=. =$8OMMMMMMMM
139
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMD?,?7$ZZZZOOOOOOOZZZ$$77777ZOI~ .~$OZMMMMMMMMM
140
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM8,:I7ZOOOOOOOOOOOOOOOOOOOOZZZ$~. ~IZMMMMMMMMMMM
141
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMD=,?IZOOO$$ZZZZOOZZZZZ$$$777III+. .:I$MMMMMMMMMMMM
142
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMM$.=I$ZOOZ7+:~~==++??II??+++==~~::. :?MMMMMMMMMMMMMM
143
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMO:~?7ZOOZ$?=, ......... ,$MMMMMMMMMMMMMMM
144
+ MMMMMMMMMMMMMMMMMMMMMMMMMD?,+I$OOOZ7+:. ~MMMMMMMMMMMMM. .MMMMMMMMMMMMMMMMM
145
+ MMMMMMMMMMMMMMMMMMMMMMMM$.=?7ZOOZ$?~, MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
146
+ MMMMMMMMMMMMMMMMMMMMMM8::?IZOOOZ7+:. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
147
+ MMMMMMMMMMMMMMMMMMMMD+,+?$ZOOZ$?~. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
148
+ MMMMMMMMMMMMMMMMMMM7,=?7ZOOO$I=,. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
149
+ MMMMMMMMMMMMMMMMMO~:+I$OOOZ7?:. ,MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
150
+ MMMMMMMMMMMMMMM8+,=?$OOOO$I~, MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
151
+ MMMMMMMMMMMMMMZ,~?IZO8OZ7+:. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
152
+ MMMMMMMMMMMMO::+I$O8OO$?~. ~MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
153
+ MMMMMMMMMMD?,=?7ZO87 ?+,. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
154
+ MMMMMMMMM7,~+I$OOOZZ$. O+OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
155
+ MMMMMMMO=,=?7ZOOO$IO$7: O?7MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
156
+ MMMMM8I,=+7ZOOOZ7+:$Z7I+ $8?MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
157
+ MMMMZ::+?$ZOOO$I=,.~I$I+? +D=OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
158
+ MM8=,=?7ZOOOZ7+,. MM,+I+~~.,D7MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
159
+ D?,=+7$OOOZ~ ?O=8MMMMM:+=,.I=MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
160
+ ::=?$ZOOOOOZ7 .O?7MMMMMM: =7MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
161
+ +?7ZOOOZ7IOZ$7: IO=DMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
162
+ MMZOOO$I=,IZZ7I+ =D+$MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
163
+ MMMOZ7+:. .+$$I??. O8+OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
164
+ MMMMM~, MMM.=77?+++ ?D?$MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
165
+ MMMMMM,MMMMMM:+I?~:~.,ZMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
166
+ MMMMMMMMMMMMMMM=?+:, 7MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
167
+ MMMMMMMMMMMMMMMM+== +MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
168
+ MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
169
+ ```
170
+ We got your keys.
171
+
172
+ As of version `0.1.3`, `shacho` will auto-generate keys and place them in an account-specific `.ssh` directory.
173
+
116
174
  # don't believe me?
117
175
 
118
176
  I got your tests right here:
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.3
@@ -10,6 +10,7 @@ module Shacho
10
10
  FileUtils.mkdir_p(filename)
11
11
  end
12
12
  update_credentials(name)
13
+ Key.generate(name)
13
14
  end
14
15
 
15
16
  def self.use(options)
data/lib/shacho/key.rb ADDED
@@ -0,0 +1,16 @@
1
+ require 'fileutils'
2
+
3
+ module Shacho
4
+ class Key
5
+ def self.generate(account)
6
+ account_path = "#{HEROKU_PREFIX}/accounts/#{account}/.ssh"
7
+ if !File.exists?(account_path)
8
+ FileUtils.mkdir_p account_path
9
+ FileUtils.chmod 0700, "#{account_path}"
10
+ end
11
+ # TODO listen for options
12
+ # TODO better way of suppressing bash output
13
+ `ssh-keygen -f #{account_path}/id_rsa`
14
+ end
15
+ end
16
+ end
data/lib/shacho.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  module Shacho
2
2
  HEROKU_PREFIX = "#{ENV['HOME']}/.heroku"
3
+
3
4
  autoload :Runner, "shacho/runner"
5
+ autoload :Key, "shacho/key"
4
6
  autoload :Account, "shacho/account"
5
7
  autoload :Credential, "shacho/credential"
6
8
  autoload :Util, "shacho/util"
data/shacho.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "shacho"
8
- s.version = "0.1.2"
8
+ s.version = "0.1.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Kelly"]
12
- s.date = "2011-10-22"
12
+ s.date = "2011-10-23"
13
13
  s.description = "commandline heroku account manager"
14
14
  s.email = "defaultstring@gmail.com"
15
15
  s.executables = ["shacho"]
@@ -30,6 +30,7 @@ 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",
33
34
  "lib/shacho/runner.rb",
34
35
  "lib/shacho/util.rb",
35
36
  "shacho.gemspec",
@@ -41,6 +42,7 @@ Gem::Specification.new do |s|
41
42
  "spec/accounts/use_account_spec.rb",
42
43
  "spec/accounts/which_account_spec.rb",
43
44
  "spec/helpers/core.rb",
45
+ "spec/keys/generate_spec.rb",
44
46
  "spec/shacho_spec.rb",
45
47
  "spec/spec_helper.rb"
46
48
  ]
@@ -0,0 +1,11 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe "Generating new keys" do
4
+ include CoreHelper
5
+
6
+ it "should be able to create an account with new keys" do
7
+ create_account
8
+ ssh_file = "#{Shacho::HEROKU_PREFIX}/accounts/test/.ssh/id_rsa.pub"
9
+ File.exists?(ssh_file).should == true
10
+ end
11
+ end
data/spec/spec_helper.rb CHANGED
@@ -10,15 +10,13 @@ Dir["#{File.dirname(__FILE__)}/helpers/**/*.rb"].each {|f| require f}
10
10
 
11
11
  RSpec.configure do |config|
12
12
  config.mock_with :mocha
13
-
13
+
14
14
  config.before :each do
15
- STDOUT.stubs(:puts)
16
- STDOUT.stubs(:print)
15
+ STDOUT.stubs(:write)
17
16
  end
18
17
 
19
18
  config.after :each do
20
- STDOUT.unstub(:puts)
21
- STDOUT.unstub(:print)
19
+ STDOUT.unstub(:write)
22
20
 
23
21
  if File.exists?("#{File.dirname(__FILE__)}/helpers/accounts")
24
22
  FileUtils.rm_r("#{File.dirname(__FILE__)}/helpers/accounts")
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.1.2
4
+ version: 0.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-10-22 00:00:00.000000000Z
12
+ date: 2011-10-23 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: heroku
16
- requirement: &12376000 !ruby/object:Gem::Requirement
16
+ requirement: &15793420 !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: *12376000
24
+ version_requirements: *15793420
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &12375260 !ruby/object:Gem::Requirement
27
+ requirement: &15792280 !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: *12375260
35
+ version_requirements: *15792280
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: ruby-debug19
38
- requirement: &12374520 !ruby/object:Gem::Requirement
38
+ requirement: &15791220 !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: *12374520
46
+ version_requirements: *15791220
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: mocha
49
- requirement: &12373320 !ruby/object:Gem::Requirement
49
+ requirement: &15789240 !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: *12373320
57
+ version_requirements: *15789240
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: bundler
60
- requirement: &12372440 !ruby/object:Gem::Requirement
60
+ requirement: &15788380 !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: *12372440
68
+ version_requirements: *15788380
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: jeweler
71
- requirement: &12371760 !ruby/object:Gem::Requirement
71
+ requirement: &15787680 !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: *12371760
79
+ version_requirements: *15787680
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rcov
82
- requirement: &12370960 !ruby/object:Gem::Requirement
82
+ requirement: &15787000 !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: *12370960
90
+ version_requirements: *15787000
91
91
  description: commandline heroku account manager
92
92
  email: defaultstring@gmail.com
93
93
  executables:
@@ -109,6 +109,7 @@ files:
109
109
  - lib/shacho.rb
110
110
  - lib/shacho/account.rb
111
111
  - lib/shacho/credential.rb
112
+ - lib/shacho/key.rb
112
113
  - lib/shacho/runner.rb
113
114
  - lib/shacho/util.rb
114
115
  - shacho.gemspec
@@ -120,6 +121,7 @@ files:
120
121
  - spec/accounts/use_account_spec.rb
121
122
  - spec/accounts/which_account_spec.rb
122
123
  - spec/helpers/core.rb
124
+ - spec/keys/generate_spec.rb
123
125
  - spec/shacho_spec.rb
124
126
  - spec/spec_helper.rb
125
127
  homepage: http://github.com/kellydunn/shacho
@@ -137,7 +139,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
137
139
  version: '0'
138
140
  segments:
139
141
  - 0
140
- hash: 4389110371778118570
142
+ hash: 4093254327020276906
141
143
  required_rubygems_version: !ruby/object:Gem::Requirement
142
144
  none: false
143
145
  requirements: