From 90528f15d193d00717564b95a1d3470983b483b2 Mon Sep 17 00:00:00 2001 From: undefined Date: Sun, 6 Nov 2022 09:22:22 +0800 Subject: [PATCH] core: install: save metadata --- packages/hydrooj/bin/commands.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/hydrooj/bin/commands.ts b/packages/hydrooj/bin/commands.ts index 51d349dfd..ef3dd679c 100644 --- a/packages/hydrooj/bin/commands.ts +++ b/packages/hydrooj/bin/commands.ts @@ -127,11 +127,16 @@ if (!argv.args[0] || argv.args[0] === 'cli') { console.log('Current Addons: ', addons); fs.writeFileSync(addonPath, JSON.stringify(addons, null, 2)); }); - cli.command('install [package]').action(async (src) => { + cli.command('install [package]').action(async (_src) => { + if (!_src) { + cli.outputHelp(); + return; + } if (yarnVersion !== 1) throw new Error('Yarn 1 is required.'); const addonDir = path.join(hydroPath, 'addons'); let newAddonPath: string = ''; fs.ensureDirSync(addonDir); + let src = _src; if (!src.startsWith('http')) { try { src = child.execSync(`yarn info ${src} dist.tarball`, { cwd: os.tmpdir() }) @@ -164,8 +169,15 @@ if (!argv.args[0] || argv.args[0] === 'cli') { console.log('Installing depedencies'); child.execSync('yarn --production', { stdio: 'inherit', cwd: newAddonPath }); child.execSync(`hydrooj addon add '${newAddonPath}'`); + fs.writeFileSync(path.join(newAddonPath, '__metadata__'), JSON.stringify({ + src: _src, + lastUpdate: Date.now(), + })); }); cli.help(); cli.parse(); - if (!cli.matchedCommand) console.log('Unknown command.'); + if (!cli.matchedCommand) { + console.log('Unknown command.'); + cli.outputHelp(); + } }