From 108661fe4e3925887187e6b0ff61a85c22d026b6 Mon Sep 17 00:00:00 2001 From: undefined Date: Thu, 8 Aug 2024 11:29:04 +0800 Subject: [PATCH] core: cli: support direct eval --- packages/hydrooj/src/entry/cli.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/hydrooj/src/entry/cli.ts b/packages/hydrooj/src/entry/cli.ts index f60ac4ebe..c60488d6e 100644 --- a/packages/hydrooj/src/entry/cli.ts +++ b/packages/hydrooj/src/entry/cli.ts @@ -33,6 +33,15 @@ async function runScript(name: string, arg: any) { async function cli() { const [, modelName, func, ...args] = argv.args as [string, string, string, ...any[]]; + if (modelName === 'execute') { + try { + // eslint-disable-next-line no-eval + const res = eval(`(async () => { with (require('${require.resolve('../plugin-api')}')) { ${func} } })`); + return console.log(await res()); + } catch (e) { + console.error(`Execution fail: ${e.message}`); + } + } if (modelName === 'script') { let arg: any; console.log(args.join(' '));