Mailspring/build/tasks/docs-publish-task.coffee
2015-10-01 13:19:34 -07:00

42 lines
1.1 KiB
CoffeeScript

path = require 'path'
Handlebars = require 'handlebars'
marked = require 'meta-marked'
fs = require 'fs-plus'
_ = require 'underscore'
module.exports = (grunt) ->
{cp, mkdir, rm} = require('./task-helpers')(grunt)
grunt.registerTask 'publish-docs', 'Publish the API docs to gh-pages', ->
done = @async()
docsOutputDir = grunt.config.get('docsOutputDir')
docsRepoDir = process.env.DOCS_REPO_DIR
if not docsRepoDir
console.log("DOCS_REPO_DIR is not set.")
return done()
exec = (require 'child_process').exec
execAll = (arr, callback) ->
console.log(arr[0])
exec arr[0], {cwd: docsRepoDir}, (err, stdout, stderr) ->
return callback(err) if callback and err
arr.splice(0, 1)
if arr.length > 0
execAll(arr, callback)
else
callback(null)
execAll [
"git fetch"
"git reset --hard origin/gh-pages"
"git clean -Xdf"
], (err) ->
return done(err) if err
cp(docsOutputDir, docsRepoDir)
execAll [
"git commit -am 'Jenkins updating docs'"
"git push --force origin/gh-pages"
], (err) ->
return done(err)