Shellject

Store your secret environment variables (API keys, AWS secrets etc.) with GPGME, and inject them into your current shell when needed.

Build Status Code Climate Test Coverage Gem Version

Installation

  1. Install GPGTools on OSX and create a new key pair, if you don't have one already
  2. If you have more than 1 secret key in your keyring, you may want to ensure that the 'default-key' is specified in ~/.gnupg/gpg.conf
  3. Then install the gem: ruby # In your Gemfile gem 'shellject'

And then execute:

```
$ bundle
```

Or install it yourself as:

```
$ gem install shellject
```

You may need to brew install gpgme on mac, or use your favourite package manager in linux

  1. Finally, run

    $ shellject setup
    

    for instructions on how to set up the shell wrapper needed for injection, and, optionally, command-line completion.

Usage

Creating a new shelljection

  1. Create a text file with the shell code you wish to have securely injected. Here's one we prepared earlier:

    $ cat my-secret-stuff.sh

     export SECRET_APIKEY=abc123
     export OTHER_VAR=stuff
    
  2. Save the file contents as a shelljection: $ shellject save --name stuff my-secret-stuff.sh

  3. Test the shelljection:

    $ shellject load stuff

    echo $SECRET_APIKEY # "abc123"

    echo $OTHER_VAR # "stuff"

  4. REMOVE THE ORIGINAL FILE!

  5. Now, you can securely load the enviroment variables whenever you wish:

    $ shellject load stuff

For further help and options:

$ shellject --help

Development

After checking out the repo, run bin/setup to install dependencies. Then, run bin/console for an interactive prompt that will allow you to experiment. Run bundle exec shellject to use the code located in this directory, ignoring other installed copies of this gem.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release to create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

  1. Fork it ( https://github.com/sergei-matheson/shellject/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Test your changes (bundle exec rake)
  5. Push to the branch (git push origin my-new-feature)
  6. Create a new Pull Request