pmdclock
Version:
CLI clock agent/client for pomodoro
118 lines (97 loc) • 2.7 kB
JavaScript
;
const program = require("commander");
const packageInfo = require("../../package.json");
const config = require("../config");
const largeRestTime = parseInt(config.get("largeRestTime"));
process.on("uncaughtException", (err) => {
process.stderr.write(`${err}\n`);
process.exit(12);
});
const agent = require("./agent");
const info = require("./info");
const start = require("./start");
const finish = require("./finish");
const cancel = require("./cancel");
const rest = require("./rest");
const list = require("./list");
const clear = require("./clear");
program
.version(packageInfo.version)
.description(packageInfo.description);
program
.command("agent")
.alias("a")
.description("Start the agent")
.option("-f, --foreground", "Start in foreground")
.option("-k, --kill", "Kill current agent")
.action(agent);
program
.command("info")
.alias("i")
.description("Get current task info")
.option("--format <format>", "Format of output", String)
.action(info);
program
.command("start")
.alias("s")
.description("Start new task!")
.option("-n, --taskname <name>", "Name of task", String)
.action(start);
program
.command("finish")
.alias("f")
.description("Finish the current pomodoro task")
.action(finish);
program
.command("cancel")
.description("Cancel the current task")
.action(cancel);
program
.command("rest")
.alias("r")
.description("Take a rest")
.option("-l, --large", `Large rest (${largeRestTime}) minutes`)
.option("--short", `Force short rest, don't apply the autoLongRest`)
.action(rest);
program
.command("list")
.alias("l")
.description("List finished tasks")
.option("-h, --head <n>", `Limit of results at the first x`, parseInt)
.option("-t, --tail <n>", `Limit of result at the last x`, parseInt)
.option("-r --reverse", `Reverse order, show first the last registers`)
.action(list);
program
.command("clear")
.description("Delete history of tasks")
.action(clear);
program
.command("help")
.description("Show help")
.action(() => {
program.help();
});
program
.command('*')
.action(() => {
process.stderr.write(`The command ${program.args[0]}, is not a valid ` +
`pmdclock command, see ${program._name} --help`);
process.exit(1);
});
const mainCLI = function (args) {
program.parse(args);
if (!program.args.length) {
program.help();
}
};
module.exports = {
mainCLI,
agent,
info,
start,
finish,
rest,
list,
clear,
cancel,
};