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(); }); /** * 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'); await modFormat.run(); }); /** * 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; };