README.md

Heroku+

A command line interface for managing multiple Heroku accounts and apps. This gem builds upon
capabilities found in the Heroku gem by adding multi-account support so you can switch between accounts using a single
command line command. In addition to the multi-account support, this gem also allows native Heroku commands enhanced
with your current account settings. Once you get your feet wet with this gem, you'll soon find that you'll be using less
of the heroku command and more of the hp command.

ATTENTION!

This gem is no longer supported and will be permanently be removed on January 1st, 2017.

Files

The following is an overview of all files used by this gem (including the Heroku gem) to manage your accounts:

~/.netrc - Used by the Heroku gem, holds current account credentials. When account switching, the contents of this
file will be replaced by the contents of a *.account file.
~/.heroku_plusrc - Settings for this gem (as mentioned above).
~/.heroku/<name>.account - Credentials for a named account (there is one for each account). When account switching,
the contents of this file will replace the contents of the .netrc file.
~/.ssh/config - The SSH configuration settings for all accounts.
~/.ssh/<name> - The private SSH identity for an account (there is one for each account). Defaults to id_rsa.
~/.ssh/<name>.pub - The public SSH identity for an account (there is one for each account). Defaults to id_rsa.pub.

Details of each file is described below.

Netrc (~/.netrc)

This file is automatically managed for you and looks like the following:

SSH Configuration (~/.ssh/config)

SSH Identity (~/.ssh/id_rsa and ~/.ssh/id_rsa.pub)

You need private and public SSH identity files for each Heroku account (it is assumed you are using RSA encryption but
any encryption technique will work). These files are automatically created for you when running the "hp -a -c" command,
but here is how to create them manually:

ssh-keygen -t rsa -C "<email>" -f ~/.ssh/id_rsa

Git Configuration (~/Development/Projects/your_project/.git/config)

This is somewhat outside the scope of documentation for this gem but I think it is important to mention. The Git
configuration file, as you might know, is what configures Git for your particular project. If you have more than one
branch (i.e. remote) listed within this config file you will still need to pass the --app command when issuing Heroku
commands. The reason for supporting multiple branches is because you might wish to have a stage and production server
where you deploy to stage before updating your production server. For example, your config file might look like this:

[remote "example-production"]
[remote "example-stage"]

This would then require you use the --app option when issuing a Heroku command. For example:

Which can be done faster by switching to the mode you want to run in (i.e. production or stage) and then running the
necessary command. Example:

hp -m -s production
hp -r

The above basically says that you want to switch to "production" mode (i.e. git branch) and then execute an app restart
via the "hp -r" command.

Finally, while this gem alleviates the need to specify the --app command when dealing within multiple Heroku accounts,
it does not help you when dealing with multiple branches within a single Heroku account. That, I leave to you.