diff --git a/packages/hydrooj/bin/commands.ts b/packages/hydrooj/bin/commands.ts index f7a15432..a0bb651b 100644 --- a/packages/hydrooj/bin/commands.ts +++ b/packages/hydrooj/bin/commands.ts @@ -87,42 +87,35 @@ if (!argv.args[0] || argv.args[0] === 'cli') { fs.removeSync(dir); console.log('Successfully restored.'); }); - cli.command('addon add ').action((name) => { - for (let i = 0; i < addons.length; i++) { - if (addons[i] === name) { - addons.splice(i, 1); - break; - } + cli.command('addon [operation] [name]').action((operation, name) => { + if (operation && !['add', 'remove', 'create'].includes(operation)) { + console.log('Unknown operation.'); + return; } - addons.push(name); - addons = Array.from(new Set(addons)); - console.log('Current Addons: ', addons); - fs.writeFileSync(addonPath, JSON.stringify(addons, null, 2)); - }); - cli.command('addon remove ').action((name) => { - for (let i = 0; i < addons.length; i++) { - if (addons[i] === name) { - addons.splice(i, 1); - break; + if (operation === 'create') { + name ||= '/root/addon'; + fs.mkdirSync(name); + child.execSync('yarn init -y', { cwd: name }); + fs.mkdirSync(`${name}/templates`); + fs.mkdirSync(`${name}/locales`); + fs.mkdirSync(`${name}/public`); + addons.push(name); + console.log(`Addon created at ${name}`); + return; + } + if (operation && name) { + for (let i = 0; i < addons.length; i++) { + if (addons[i] === name) { + addons.splice(i, 1); + break; + } } } + if (operation === 'add' && name) addons.push(name); addons = Array.from(new Set(addons)); console.log('Current Addons: ', addons); fs.writeFileSync(addonPath, JSON.stringify(addons, null, 2)); }); - cli.command('addon create [name]').action((name) => { - name ||= '/root/addon'; - fs.mkdirSync(name); - child.execSync('yarn init -y', { cwd: name }); - fs.mkdirSync(`${name}/templates`); - fs.mkdirSync(`${name}/locales`); - fs.mkdirSync(`${name}/public`); - addons.push(name); - console.log(`Addon created at ${name}`); - }); - cli.command('addon').action(() => { - console.log('Current Addons: ', addons); - }); cli.help(); cli.parse(); if (!cli.matchedCommand) console.log('Unknown command.'); diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index b6e0f196..87fa720a 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "3.13.10", + "version": "3.13.11", "bin": "bin/hydrooj.js", "main": "src/loader", "module": "src/loader",