glass-build
Version:
Contains scripts for building glass based projects.
38 lines (34 loc) • 1.58 kB
text/coffeescript
{watcher,utility} = browserBuild = require 'browser-build'
np = require 'path'
cb = require 'coffeebars'
coffeePageInputExt = ".page"
coffeePageOutputExt = ".coffee"
exports.buildCoffeePages = buildCoffeePages = (config) ->
return unless config?
config.input.extension ?= coffeePageInputExt
config.output.extension ?= coffeePageOutputExt
for inputFile in utility.list config.input.directory, {include:config.input.extension}
buildCoffeePage config, inputFile
# finally, build coffeescript
utility.buildCoffee config.output.directory, config.output.directory
exports.watchCoffeePages = watchCoffeePages = (config) ->
return unless config?
config.input.extension ?= coffeePageInputExt
config.output.extension ?= coffeePageOutputExt
watcher.watchDirectory config.input.directory, {include:config.input.extension}, (file) ->
console.log "Compiling #{file}"
buildCoffeePage config, file
# finally, build coffeescript
utility.watchCoffee config.output.directory, config.output.directory
exports.buildCoffeePage = buildCoffeePage = (config, inputFile) ->
input = config.input.directory
output = config.output.directory
inputExt = config.input.extension
outputExt = config.output.extension
outputFile = np.join(output, np.relative(input, inputFile)).slice(0, -inputExt.length) + outputExt
source = utility.read inputFile
try
compiled = cb.toCoffeeScript source
utility.write outputFile, compiled
catch e
console.log e