bakerhelper.coffeelib/cake_module/ | |
---|---|
path = require 'path'
fs = require 'fs'
{exec} = require 'child_process'
{log, error} = console
{inspect} = require 'util'
coffee = require '../../node_modules/coffee-script'
_ = require '../../node_modules/underscore'
colors = require '../../node_modules/colors'
r = | |
exec(cmd, options, callback)Overrides
The callback is passed three arguments ( | exec : (cmd, options, callback=null)->
[callback, options] = [options, {}] if not callback?
log "#{'Executing'.bold.green} `#{cmd}`"
exec cmd, options, (err, stdout, stderr)->
if err?
error stderr.red
process.exit 1
log stdout.grey if stdout? && stdout != ''
callback?(err, stdout, stderr) |
compileCoffeescripts(directory, option={})Compile all the coffeescripts into javascript files from a directory (not recursive)
| compileCoffeescripts: (directory, options={})-> |
Compile each coffee in js in bin | directory = path.resolve directory
fs.readdir directory, (err, files)->
files.forEach (file)-> |
Check if it's a coffee file | if path.extname(file) is '.coffee'
filename = "#{directory}/#{file}"
log "#{'Read'.bold} #{filename.italic}"
fs.readFile filename, (err, data)->
console.error err and process.exit 1 if err?
log "#{'Compile'.bold} #{filename.italic}"
js = coffee.compile(data.toString())
|
Add a shebang on top | js = "#!/usr/bin/env node\n#{js}" if options.shebang
|
Save to file | filename = filename.replace /\.coffee$/, '.js'
log "#{'Write'.bold} to #{filename.italic}"
fs.writeFile filename, js, 'utf8', (err)->
error err and process.exit 1 if err? |
generateDoccoHusky(directories=[])Generate doc with docco-husky
and push it to the
| generateDoccoHusky: (directories)->
directories = (_.flatten([directories])).join ' '
directory = path.resolve './'
|
Create a tmp directoryectory | r.exec 'mktemp -d', (err, stdout, stderr)->
error err if err?
tmp = stdout.replace(/^\s*|\s*$/g, '')
|
clone the git in that temp directory | r.exec "git clone #{directory} #{tmp}", (err, stdout, stderr)->
error err if err?
log stdout
|
Change branch to gh-pages | r.exec "git checkout gh-pages", {cwd:tmp}, (err, stdout, stderr)->
error err if err?
log stdout
|
Create doc | r.exec "docco-husky #{directories}", (err, stdout, stderr)->
error err if err?
log stdout
|
Move the doc to the tmp directory | r.exec "cp #{directory}/docs/* #{tmp} -r", (err, stdout, stderr)->
error err if err?
log stdout
|
Commit to gh-pages | r.exec "git add . && git commit -am 'Generated automatically'", {cwd:tmp}, (err, stdout, stderr)->
error err if err?
log stdout
|
Push to gh-pages | r.exec "git push origin gh-pages", {cwd:tmp}, (err, stdout, stderr)->
error err if err?
log stdout
|
Remove the docs directory | r.exec "rm -r #{directory}/docs/"
module.exports = r
|