mirror of
https://github.com/lucaspalomodevelop/JSSTE.git
synced 2026-03-13 07:19:37 +00:00
100 lines
2.1 KiB
JavaScript
100 lines
2.1 KiB
JavaScript
#!/usr/bin/env node
|
|
let jsste = require("./index");
|
|
let myargs = process.argv.slice(2);
|
|
let output = "";
|
|
let pagefile, tempfile;
|
|
let path = require("path");
|
|
let fs = require("fs");
|
|
|
|
var currentPath = process.cwd();
|
|
|
|
jsste.__config.set("templatePath",currentPath)
|
|
jsste.__config.set("pagePath",currentPath)
|
|
|
|
/**
|
|
* this function filters the prefix and call the callback with the param
|
|
* @param {prefix, args } settings
|
|
* @param {*} callback
|
|
*/
|
|
let addCommand = ({ prefix, args = myargs }, callback) => {
|
|
myargs.forEach((elem) => {
|
|
if (elem.startsWith(prefix)) {
|
|
elem = elem.replace(prefix, "");
|
|
callback(elem);
|
|
}
|
|
});
|
|
};
|
|
|
|
/**
|
|
* -log | show jsste log
|
|
*/
|
|
addCommand({ prefix: "-log" }, (arg) => {
|
|
jsste.setStateFunction((state) => {
|
|
console.log(state);
|
|
});
|
|
});
|
|
|
|
/**
|
|
* -Jsconfig | set jsste config as json
|
|
*/
|
|
addCommand({ prefix: "-Jsconfig=" }, (arg) => {
|
|
jsste.__config.setConfig(arg);
|
|
});
|
|
|
|
/**
|
|
* -pageFile | set pageFile path
|
|
*/
|
|
addCommand({ prefix: "-pageFile=" }, (arg) => {
|
|
jsste.setState({ status: 4, statusMSG: currentPath })
|
|
pagefile = JSON.parse(fs.readFileSync(path.join(currentPath, arg), "utf8"));
|
|
|
|
pagefile["_SELFPATH_"] = path.dirname(arg);
|
|
});
|
|
|
|
/**
|
|
* -pageFile | set pageFile as json
|
|
*/
|
|
addCommand({ prefix: "-page=" }, (arg) => {
|
|
pagefile = JSON.parse(arg);
|
|
pagefile["_SELFPATH_"] = path.dirname(arg);
|
|
});
|
|
|
|
/**
|
|
* -tempFile | set tempFile path
|
|
*/
|
|
addCommand({ prefix: "-tempFile=" }, (arg) => {
|
|
tempfile = fs.readFileSync(arg, "utf8");
|
|
});
|
|
|
|
/**
|
|
* -pageFile | set pageFile as code
|
|
*/
|
|
addCommand({ prefix: "-temp=" }, (arg) => {
|
|
tempfile = arg;
|
|
});
|
|
|
|
/**
|
|
* rendering
|
|
*/
|
|
output = jsste.render(pagefile || undefined, tempfile || undefined);
|
|
|
|
/**
|
|
* -info | show jsste.info
|
|
*/
|
|
addCommand({ prefix: "-info" }, (arg) => {
|
|
if (arg == "?json") {
|
|
console.log(JSON.stringify(jsste.info));
|
|
} else {
|
|
Object.keys(jsste.info).forEach((key) => {
|
|
console.log(key + " : " + jsste.info[key]);
|
|
});
|
|
}
|
|
});
|
|
|
|
/**
|
|
* -out | write rendered code into the commandling
|
|
*/
|
|
addCommand({ prefix: "-out" }, (arg) => {
|
|
console.log(output);
|
|
});
|