2017-09-13 07:52:34 +02:00

43 lines
1.1 KiB
CoffeeScript

{spawn, exec} = require "child_process"
watch = require "nodewatch"
task "spec", "Runs the Jasmine specs.", ->
header()
jasmine = spawn "node", ["node_modules/jasmine-node/lib/jasmine-node/cli.js", "--coffee", "-i", "src", "spec"]
jasmine.stdout.on "data", (data) ->
process.stdout.write data
jasmine.stderr.on "data", (data) ->
process.stderr.write data
jasmine.stdin.end()
task "watch", "Watches for file changes, recompiling CoffeeScript and running the Jasmine specs.", ->
console.log "Watching Shellwords for changes...\n"
invoke "spec"
watch.add("src").add("spec").onChange (file, prev, cur) ->
exec "coffee -co lib src", (error, stdout, stderr) ->
throw error if error
invoke "spec"
header = ->
divider = "------------"
console.log divider, dateString(), divider
dateString = ->
d = new Date
h = d.getHours()
m = d.getMinutes()
s = d.getSeconds()
meridiem = if h >= 12 then "PM" else "AM"
h -= 12 if h > 12
h = 12 if h is 0
m = "0" + m if m < 10
s = "0" + s if s < 10
"#{d.toLocaleDateString()} #{h}:#{m}:#{s} #{meridiem}"