-
Notifications
You must be signed in to change notification settings - Fork 183
/
Cakefile
55 lines (41 loc) · 1.44 KB
/
Cakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
fs = require 'fs'
{spawn, exec} = require 'child_process'
# Config
# ----------
config = JSON.parse(fs.readFileSync(__dirname+ '/config.json', 'utf-8'))
# ANSI terminal colors.
# ----------
red = `'\033[0;31m'`
green = `'\033[0;32m'`
reset = `'\033[0m'`
# Commands
# ----------
herokuCreate = "heroku create --stack cedar"
herokuPush = "git push heroku master"
herokuConfig = "heroku config:add NODE_ENV=production"
herokuConfig = (client, secret) ->
"heroku config:add OAUTH_CLIENT_ID=#{client} OAUTH_CLIENT_SECRET=#{secret}"
# Helpers
# ----------
# Log a message with a color.
log = (message, color, explanation) ->
console.log "#{color or ''}#{message}#{reset} #{explanation or ''}"
# Tasks
# ----------
option '-c', '--client [CLIENT_ID]', 'Client ID'
option '-s', '--secret [CLIENT_SECRET]', 'Client Secret'
task 'heroku:config', 'Reconfigure heroku', (options) ->
exec herokuConfig(options.client, options.secret), (err, stdout, stderr) ->
throw err if err
log stdout
log 'Sucessfully configured the app on heroku.', green
task 'heroku:create', 'Create the app on the cedar stack', (options) ->
exec herokuCreate, (err, stdout, stderr) ->
throw err if err
log stdout
log 'Sucessfully created the app on heroku.', green
task 'heroku:push', 'Push changes to heroku', (options) ->
exec herokuPush, (err, stdout, stderr) ->
throw err if err
log stdout
log 'Sucessfully pushed app to heroku.', green