+++++++=++=+++====++====+==========+=============+=======+$ODD8ZD8D++++++++++++? =++=~++=~~============================================++ID$$????77O8DD++=+++++++ ~+++$+===============================================?O8??++++++++???Z8+=?+?++++ ~+=+================================================I$$+??+++++++++???$D+=====+= ~==================================================I7?I????+?++++?????777======+ ~==================================================$87III???+=+++++III78O======= ===================================================$DZII??+++++++??+?IZDD=====+= ===================================================$DO??III7I?$$8DDO7?7DZ=====+= +==================================================8NIO8Z8DDDZZDD8O78Z?8O?====== +==================================================D8IOODDDN7??IZ7$8+ZI8Z:====== ===================================================8$I?+?7?I?++????I?$7Z$======= ====?+==?7I~======~=,+~~=======~=,:=========+======:Z$Z$???ZI?+???++I$787=====DI ====~NNN:$NND====.NNNDMNND====NDNNMNND===DNDMDND:===D7ZZI?IDDZZ88I?777IZ$======= =====NNN===NNM==7NNM~===NNN~=.NN===~MD==MND====NM===8D$$ZI?7DDDD??I7I$I7======== =====NNN==MNN===NNN=====~NNN=:NNN~~==~~=NNN7=~=~?~====O7$7777I7?II?I77I========= =====NNNNNND.==:NNN=~~===NNN==DNNNDN====:NNNNN.~======88$7+???+?+?7I77========== =====NNN~=7NNN=~NNN==~~~=NNN~=~~NNNNNN====MNNNNN=====~ODOZ7Z$O$?$Z$Z88==~=====OI =====NNN===DNN:=NND=~~~~,NND=,=~~~=NNN.======MNNN~~==ONDD8ZII7+?II$DD:~~~~~~~=?Z =====NNN==~NNN~~.NNM=~~=NNM~~NN~~~~=NN:~NZ~~==DNN~==DM?7DDD888DD88DD??8:~~~~~=~I ===$NNNNNNNNN==~=:NNNMDNND~=~INNM,,NNN=~NND~=~NNNNNNDM=?7$DDDDNND8D7?=888N:~~~:7 =========~~~~~~~~~~==,:=~~~~~~~:IDN.~$$7=~=Z8DZNNDDDDD===?$DDDDDD87+~=8888888O:$ =========~~~~~~~~~~~~~~~~~~~~~~~~~~~~IOO777$$ZOMDDNDDD=====7$NDN7=~~~=88888888~I =======~~~~~=~~~~~~~~~~~~~~~~~~~~~~NDD877$7?IIIMDNDDDD=~=~~=DZ$7~~~~~88888O88O=I =====~~~~=~~~=~~~~~~~~==~~~~~~~~~~DDDN$$?I??7ZDNDDDNDD:~~~~D$D$Z8:~~=O8O88888O=Z
what¶ ↑
A command-line utility that helps manage all your accounts and associated keys (eventually) for heroku.
why¶ ↑
heroku_plus is pretty cool but I wanted something a little different.
installation¶ ↑
gem install shacho
usage¶ ↑
shacho action params
Where action
is one of the standard CRUDy actions:
-
create
-
use
-
list
-
which
-
edit
-
remove
-
clear
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
examples!¶ ↑
# Create: makes a new account shacho create default
# Use: switches the user shacho use default
# List: shows all the accounts on your machine shacho list
# Which: shows the current account in use shacho which
# Edit: allows you to edit the credentials for a specific account shacho edit default
# Remove: removes a specific account shacho remove default
# Clear: removes all accounts shacho clear
details of implementation¶ ↑
shacho
creates folders in your ~/.heroku
that correspond to the account name you passsed into the command. The following call:
shacho create default
Would result in the following file structure:
/home/your_username/.heroku └── accounts └── default └── credentials
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
You can now use heroku account-specific commands by simply firing off a shacho use
:3
keys¶ ↑
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM:.~ZOOZ? ,?MMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM: ,7OOOZ$$Z+ ,?MMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM=. ~OOOOZ$I7$$Z= ~IMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM: ,OOOZZ$$I?II7$$Z~ =?MMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM?, 7OOZZ$$7I?+??I7$$Z7, ?MMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM$= IOOZZ$77I?+===+?II7$$Z7,,?MMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM$,~OZZZ$77I?+=~::~=+??I7$$ZZ?.I=MMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMO:.OZZZ$77?+==:..M?~~~=+??I7$$ZZ? $=MMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMD+ $OZZ$$7=, ,+MMMMM~+II++?I77$ZZZ:.$?MMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM? IO$I:. :IO88MMMMMMMMM .~?$ZZ$7$$ZZZ.~$7MMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM$= ~ZOZ~ $8DDZI=MMMMMMMMMMMMM:. .:=7ZOOOZZZ II$MM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM$=.~$OZ? +DI+IMMMMMMMMMMMMMMMMMI+:. .,=IZOO7 $$$M MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMZ=.~$OZ7 ,8Z+MMMMMMMMMMMMMMMMMMMM8O$?~. =OOI 78?M MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM8=.:7ZZ$. Z8=ZMMMMMMMMMMMMMMMMMMMMMDD$,,$ZI, =D=M MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMI.:7ZZZ~ ?D?$MMMMMMMMMMMMMMMMMMMMN8+ +O$= 7D+M MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMZ,:IZZZ+ :D7IMMMMMMMMMMMMMMMMMMM8Z,.$O7~ ,$D8?7 MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM8::?$ZZ? .OO=MMMMMMMMMMMMMMMMMII+ =OZI. =ODZ+?M MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMD=,?7ZOI. $O=?MMMMMMMMMMMMMMM::, ?OZ+. .I8D$=MMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMI.+7$O7, =Z++MMMMMMMMMMMMM,, ,ZO7: :$D8I+MMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM$,=I$O$: .77I?+++++?IMMM+,. :+OZI. ~$887MMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM8:~I$O$++=~:,,,,,,,... .7OO$=. =$8OMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMD?,?7$ZZZZOOOOOOOZZZ$$77777ZOI~ .~$OZMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM8,:I7ZOOOOOOOOOOOOOOOOOOOOZZZ$~. ~IZMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMD=,?IZOOO$$ZZZZOOZZZZZ$$$777III+. .:I$MMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMM$.=I$ZOOZ7+:~~==++??II??+++==~~::. :?MMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMO:~?7ZOOZ$?=, ......... ,$MMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMD?,+I$OOOZ7+:. ~MMMMMMMMMMMMM. .MMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMM$.=?7ZOOZ$?~, MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMM8::?IZOOOZ7+:. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMD+,+?$ZOOZ$?~. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMM7,=?7ZOOO$I=,. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMO~:+I$OOOZ7?:. ,MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMM8+,=?$OOOO$I~, MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMZ,~?IZO8OZ7+:. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMO::+I$O8OO$?~. ~MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMD?,=?7ZO87 ?+,. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMM7,~+I$OOOZZ$. O+OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMO=,=?7ZOOO$IO$7: O?7MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMM8I,=+7ZOOOZ7+:$Z7I+ $8?MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMZ::+?$ZOOO$I=,.~I$I+? +D=OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MM8=,=?7ZOOOZ7+,. MM,+I+~~.,D7MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM D?,=+7$OOOZ~ ?O=8MMMMM:+=,.I=MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM ::=?$ZOOOOOZ7 .O?7MMMMMM: =7MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM +?7ZOOOZ7IOZ$7: IO=DMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMZOOO$I=,IZZ7I+ =D+$MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMOZ7+:. .+$$I??. O8+OMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMM~, MMM.=77?+++ ?D?$MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMM,MMMMMM:+I?~:~.,ZMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMM=?+:, 7MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMM+== +MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
We got your keys.
As of version 0.1.4
, shacho
will auto-generate keys and place them in an account-specific .ssh
directory upon the create
action.
The use
action will register the auto-generated keys with heroku.
don’t believe me?¶ ↑
I got your tests right here:
git clone git@github.com:kellydunn/shacho cd shacho bundle install rspec spec