diff --git a/debugTask.js b/debugTask.js index ed64796..2fd0aee 100644 --- a/debugTask.js +++ b/debugTask.js @@ -2,6 +2,8 @@ * 单任务调试入口 * * 示例: + * node debugTask.js dailyTrending --keep-open + * node debugTask.js updateProject --keep-open --dry-run * TASK=dailyTrending DEBUG_TASK=true DEBUG_KEEP_OPEN=true node debugTask.js * TASK=updateProject DEBUG_TASK=true DEBUG_KEEP_OPEN=true DEBUG_DRY_RUN=true node debugTask.js */ @@ -52,15 +54,35 @@ const taskMap = { }, }; +function getArgs() { + const args = process.argv.slice(2); + const taskArg = args.find((arg) => !arg.startsWith('--')); + const flags = new Set(args.filter((arg) => arg.startsWith('--'))); + + return { + taskKey: process.env.TASK || taskArg, + help: flags.has('--help') || flags.has('-h'), + keepOpen: process.env.DEBUG_KEEP_OPEN === 'true' || flags.has('--keep-open'), + pauseEachStep: process.env.DEBUG_PAUSE_EACH_STEP === 'true' || flags.has('--pause-each-step'), + dryRun: process.env.DEBUG_DRY_RUN === 'true' || flags.has('--dry-run'), + }; +} + function printUsage() { - logger.info('用法: TASK= node debugTask.js'); + logger.info('用法: node debugTask.js [--keep-open] [--pause-each-step] [--dry-run]'); + logger.info('兼容用法: TASK= node debugTask.js'); logger.info('可用任务:'); Object.keys(taskMap).forEach((key) => logger.info(` ${key}`)); - logger.info('常用参数: DEBUG_KEEP_OPEN=true DEBUG_PAUSE_EACH_STEP=true DEBUG_DRY_RUN=true'); } async function main() { - const taskKey = process.env.TASK; + const args = getArgs(); + if (args.help) { + printUsage(); + return; + } + + const taskKey = args.taskKey; const task = taskMap[taskKey]; if (!task) { @@ -101,9 +123,9 @@ async function main() { logger.info(`===== 执行单任务: ${task.name} =====`); await task.handler(page, { debugTask: true, - keepOpen: process.env.DEBUG_KEEP_OPEN === 'true', - pauseEachStep: process.env.DEBUG_PAUSE_EACH_STEP === 'true', - dryRun: process.env.DEBUG_DRY_RUN === 'true', + keepOpen: args.keepOpen, + pauseEachStep: args.pauseEachStep, + dryRun: args.dryRun, }); logger.divider(); diff --git a/package.json b/package.json index ca37842..1a29ea7 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,8 @@ "start": "node main.js", "test": "node main.js", "debug:task": "node debugTask.js", - "debug:trending": "TASK=dailyTrending DEBUG_KEEP_OPEN=true node debugTask.js", - "debug:update": "TASK=updateProject DEBUG_KEEP_OPEN=true DEBUG_DRY_RUN=true node debugTask.js" + "debug:trending": "node debugTask.js dailyTrending --keep-open", + "debug:update": "node debugTask.js updateProject --keep-open --dry-run" }, "keywords": [ "gitcode",