shacho 0.1.2 → 0.1.3

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 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: