UNPKG

@mails2nithin/time-entry

Version:

Nithin time entry cli

105 lines (78 loc) 2.59 kB
const { checkConfig } = require('./init-config'); const { removeEmpty } = require('./utils'); const { getStatus, getTasksByDate } = require('./get-report'); const { logTaskHoursAndSync } = require('./log-task-hours-and-sync'); const { addNewTask } = require('./add-task'); const { updateTask, deleteTask } = require('./update-delete-task'); const { getGitlabActivities } = require('./get-gitlab-activities'); const processArgs = async (type, value) => { try { await checkConfig(); const values = value ? removeEmpty(value?.split(' -')) : value; switch (type) { case 'add': { await addNewTask(values); break; } case 'update': { await updateTask(values); break; } case 'delete': { console.log(await deleteTask(values)); break; } case 'status': { await getStatus(values); break; } case 'entries': { console.table(await getTasksByDate(values)); break; } case 'zoho': { console.log('Final status: ', await logTaskHoursAndSync()); break; } case 'gitlab': { await getGitlabActivities(values); break; } case 'v': case 'version': { const path = require('path'); const packageJson = require(path.resolve(__dirname, '../package.json')); const packageVersion = packageJson.version; console.log('Package version:', packageVersion); break; } case 'h': case 'help': { console.log(`usage: timectl \t[version] [help] [init] [switch] \t[add] [update] [delete] [status] [entries] [zoho]\n`); console.log(`Below are common Time Entry commands utilized in various scenarios:\n Start a time entry: init \t\t: Initialize and input necessary information. switch \t: Switch between the default projects. Work on the Current Change: add \t\t: Add your time details. update \t: Update existing time details. delete \t: Remove existing time details. Examine the History: entries \t: View each time entry's details by date. status \t: View daily status of time entries. zoho \t\t: Update time entries remotely. Running 'timectl help' will list available subcommands and provide some conceptual guides.`); break; } default: { console.error(`timectl: '${type}' is not a timectl command. See 'timectl -help'.`); return; } } } catch (error) { console.log(error); } process.exit(1); }; module.exports = { processArgs };