Over time I've written a bunch of useful little functions and tasks that have been handy in the build systems of my projects. Finally, I've decided to collect these together.
You might also find some of these useful if you use Rake.
Add this line to your application's Gemfile:
gem 'ggake'
And then execute:
$ bundle
Or install it yourself as:
$ gem install ggake
This gem provides the following utilities:
-
haml_template
: Compiles a Haml template to an HTML file. -
coffee
: Compiles a CoffeeScript script to a JavaScript script. -
transient
: Allows a Rake task to depend on a transient value, such as an environment variable. -
cloud_cp
: Simple copy of a directory to an S3, or other cloud storage, bucket. -
foreman
: Runs Heroku's foreman tool in a clean environment. -
heroku
: Runs the Heroku command in a clean environment. -
heroku_config_get
: Returns the value of an environment variable set for a particular Heroku app. -
dbdeploy
: Runs DBDeploy to migrate your database
More detailed usage below.
haml_template(path_to_haml_template, output: path_to_output_directory)
coffee(path_to_coffee, output: path_to_output_directory)
transient :calatrava_env, ENV['CALATRAVA_ENV']
task :build => :calatrava_env
cloud_ cp(directory, bucket: bucket_name,
credentials: {
access_key: aws_access_key,
secret_key: aws_secret_key
},
public: true)
foreman [[name, "value"]] "<foreman command line here>"
heroku ["cmd" "args"]
heroku_config_get "var", "heroku-app-name"
dbdeploy classpath: "path to DBDeploy jar and DB driver jar", db_url: "DB URL to migrate",
user: "User name", password: "password", driver: "Java class name for DB driver",
migrations: "directory containing migration scripts"
The driver
defaults to PostgreSQL. The migrations
directory defaults to src/db/migrations
, relative to the Rakefile
. The password
will not appear on any command line, or in any build logs.
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request