#!/usr/bin/env node var argv = require('minimist')(process.argv.slice(2)) var pkg = require("../package.json") var colors = require("colors") var path = require("path") var boxt = require("boxt") var box = (...args) => console.log(boxt(...args).split("\n").join("\n ")); var help = function(){ var log = function(){ var arr = Array.prototype.slice.call(arguments); console.log.apply(this, [" "].concat(arr)) } var box = (...args) => console.log(boxt(...args).split("\n").join("\n ")); log() log("Harp".underline.blue, "〜".grey, "Static Web Server".brightYellow, "v".grey + pkg.version.grey) log() // log("Process | Bundle | Generate - Just In Time".grey) // log() log("USAGE".grey) log(" harp serves project locally") log(" harp compiles for static host") log() log("OPTIONS".grey) log(" -p, --port " +"9000".blue +" server port to listen on") log(" -h, --host " +"0.0.0.0".blue +" server host to answer to") // log(" -c, --cache " +"false".blue +" server memory cache") // log(" -t, --pretty " +"false".blue +" server/compile keep whitespace") log(" -h, --help server/compile keep whitespace") log(" -v, --version server/compile keep whitespace") box( `${'PROCESSING'.grey } ${'DATA'.grey } ${'.ejs -> .html' } ${'_data.json - directory data' } ${'.jade -> .html' } ${'_data.js - dynamic build data' } ${'.md -> .html' } ${'.sass -> .css ' } ${'GENERATION'.grey } ${'.scss -> .css ' } ${'partial("_path/to/partial", {' } ${'.cjs -> .js ' } ${' "title": "Hello World"' } ${'.jsx -> .js ' } ${'})' }` , { color: 'grey', padding: 2, theme: 'round', align:"left"}); } var version = function(){ console.log("v" + pkg.version) } /** * version */ if (argv.version || argv.v) return version() /** * help */ if ((argv["_"].length === 0) || argv.help || argv.h) return help() var harp = require("../") /** * Server */ if (argv["_"].length === 1){ var projectPath = path.resolve(process.cwd(), argv["_"][0]) var host = argv.host || '0.0.0.0' var port = argv.port || 9000 var server = harp.server(projectPath, argv) server.listen(port, host, function(error){ if (error) process.exit(1) box( `${ 'Harp'.blue } ${ ('v' + pkg.version).grey} ${ ('http://localhost:' + port + "/").underline.cyan }`, { align: "left", color: "grey", padding: 3 }) }) } /** * Compile */ if (argv["_"].length === 2){ var projectPath = path.resolve(process.cwd(), argv["_"][0]) var buildPath = path.resolve(process.cwd(), argv["_"][1]) harp.compile(projectPath, buildPath, function(errors, output){ if(errors) { console.log(JSON.stringify(errors, null, 2)) process.exit(1) } //console.log("Done!".green) }) }