UNPKG

3.3 kBPlain TextView Raw
1#!/usr/bin/env node
2
3var argv = require('minimist')(process.argv.slice(2))
4var pkg = require("../package.json")
5var colors = require("colors")
6var path = require("path")
7var boxt = require("boxt")
8
9
10var box = (...args) => console.log(boxt(...args).split("\n").join("\n "));
11
12var help = function(){
13
14 var log = function(){
15 var arr = Array.prototype.slice.call(arguments);
16 console.log.apply(this, [" "].concat(arr))
17 }
18
19 var box = (...args) => console.log(boxt(...args).split("\n").join("\n "));
20
21 log()
22 log("Harp".underline.blue, "〜".grey, "Static Web Server".brightYellow, "v".grey + pkg.version.grey)
23 log()
24 // log("Process | Bundle | Generate - Just In Time".grey)
25 // log()
26 log("USAGE".grey)
27 log(" harp <source> serves project locally")
28 log(" harp <source> <build> compiles for static host")
29 log()
30 log("OPTIONS".grey)
31 log(" -p, --port " +"9000".blue +" server port to listen on")
32 log(" -h, --host " +"0.0.0.0".blue +" server host to answer to")
33 // log(" -c, --cache " +"false".blue +" server memory cache")
34 // log(" -t, --pretty " +"false".blue +" server/compile keep whitespace")
35 log(" -h, --help server/compile keep whitespace")
36 log(" -v, --version server/compile keep whitespace")
37 box(
38`${'PROCESSING'.grey } ${'DATA'.grey }
39 ${'.ejs -> .html' } ${'_data.json - directory data' }
40 ${'.jade -> .html' } ${'_data.js - dynamic build data' }
41 ${'.md -> .html' }
42 ${'.sass -> .css ' } ${'GENERATION'.grey }
43 ${'.scss -> .css ' } ${'partial("_path/to/partial", {' }
44 ${'.cjs -> .js ' } ${' "title": "Hello World"' }
45 ${'.jsx -> .js ' } ${'})' }`
46, { color: 'grey', padding: 2, theme: 'round', align:"left"});
47
48}
49
50
51var version = function(){
52 console.log("v" + pkg.version)
53}
54
55
56/**
57 * version
58 */
59
60if (argv.version || argv.v) return version()
61
62
63/**
64 * help
65 */
66
67if ((argv["_"].length === 0) || argv.help || argv.h) return help()
68
69
70
71
72
73var harp = require("../")
74
75
76/**
77 * Server
78 */
79
80if (argv["_"].length === 1){
81 var projectPath = path.resolve(process.cwd(), argv["_"][0])
82 var host = argv.host || '0.0.0.0'
83 var port = argv.port || 9000
84 var server = harp.server(projectPath, argv)
85
86 server.listen(port, host, function(error){
87 if (error) process.exit(1)
88 box(
89 `${ 'Harp'.blue } ${ ('v' + pkg.version).grey}
90${ ('http://localhost:' + port + "/").underline.cyan }`, { align: "left", color: "grey", padding: 3 })
91 })
92}
93
94
95/**
96 * Compile
97 */
98
99if (argv["_"].length === 2){
100 var projectPath = path.resolve(process.cwd(), argv["_"][0])
101 var buildPath = path.resolve(process.cwd(), argv["_"][1])
102
103 harp.compile(projectPath, buildPath, function(errors, output){
104 if(errors) {
105 console.log(JSON.stringify(errors, null, 2))
106 process.exit(1)
107 }
108 //console.log("Done!".green)
109 })
110}
111