UNPKG

@git.zone/cli

Version:

A comprehensive CLI tool for enhancing and managing local development workflows with gitzone utilities, focusing on project setup, version control, code formatting, and template management.

138 lines (116 loc) 3.74 kB
import * as plugins from './plugins.js'; import * as paths from './paths.js'; import { GitzoneConfig } from './classes.gitzoneconfig.js'; const gitzoneSmartcli = new plugins.smartcli.Smartcli(); export let run = async () => { const done = plugins.smartpromise.defer(); // get packageInfo const projectInfo = new plugins.projectinfo.ProjectInfo(paths.packageDir); // check for updates const smartupdateInstance = new plugins.smartupdate.SmartUpdate(); await smartupdateInstance.check( 'gitzone', projectInfo.npm.version, 'http://gitzone.gitlab.io/gitzone/changelog.html', ); console.log('---------------------------------------------'); gitzoneSmartcli.addVersion(projectInfo.npm.version); // ======> Standard task <====== /** * standard task */ gitzoneSmartcli.standardCommand().subscribe(async (argvArg) => { const modStandard = await import('./mod_standard/index.js'); await modStandard.run(); }); // ======> Specific tasks <====== /** * commit something */ gitzoneSmartcli.addCommand('commit').subscribe(async (argvArg) => { const modCommit = await import('./mod_commit/index.js'); await modCommit.run(argvArg); }); /** * deprecate a package on npm */ gitzoneSmartcli.addCommand('deprecate').subscribe(async (argvArg) => { const modDeprecate = await import('./mod_deprecate/index.js'); await modDeprecate.run(); }); /** * docker */ gitzoneSmartcli.addCommand('docker').subscribe(async (argvArg) => { const modDocker = await import('./mod_docker/index.js'); await modDocker.run(argvArg); }); /** * Update all files that comply with the gitzone standard */ gitzoneSmartcli.addCommand('format').subscribe(async (argvArg) => { const config = GitzoneConfig.fromCwd(); const modFormat = await import('./mod_format/index.js'); // Handle rollback commands if (argvArg.rollback) { await modFormat.handleRollback(argvArg.rollback); return; } if (argvArg['list-backups']) { await modFormat.handleListBackups(); return; } if (argvArg['clean-backups']) { await modFormat.handleCleanBackups(); return; } // Handle format with options await modFormat.run({ dryRun: argvArg['dry-run'], yes: argvArg.yes, planOnly: argvArg['plan-only'], savePlan: argvArg['save-plan'], fromPlan: argvArg['from-plan'], detailed: argvArg.detailed, interactive: argvArg.interactive !== false, parallel: argvArg.parallel !== false, verbose: argvArg.verbose }); }); /** * run meta commands */ gitzoneSmartcli.addCommand('meta').subscribe(async (argvArg) => { const config = GitzoneConfig.fromCwd(); const modMeta = await import('./mod_meta/index.js'); modMeta.run(argvArg); }); /** * open assets */ gitzoneSmartcli.addCommand('open').subscribe(async (argvArg) => { const modOpen = await import('./mod_open/index.js'); modOpen.run(argvArg); }); /** * add a readme to a project */ gitzoneSmartcli.addCommand('template').subscribe(async (argvArg) => { const modTemplate = await import('./mod_template/index.js'); modTemplate.run(argvArg); }); /** * start working on a project */ gitzoneSmartcli.addCommand('start').subscribe(async (argvArg) => { const modTemplate = await import('./mod_start/index.js'); modTemplate.run(argvArg); }); gitzoneSmartcli.addCommand('helpers').subscribe(async (argvArg) => { const modHelpers = await import('./mod_helpers/index.js'); modHelpers.run(argvArg); }); // start parsing of the cli gitzoneSmartcli.startParse(); return await done.promise; };