/** * 更新发布工具 * * Copyright © 2025 imengyu.top imengyu-update-server */ import { program } from 'commander'; import { login, checkLogged, logout, initAuth } from './auth.mjs'; import { testVersion, getVersion, getUpdate } from './app.mjs'; import { logError } from './utils.mjs'; //程序入口 //============================================ program .command('login ') .description('登录') .action(login); program .command('logstate') .description('检查登录状态') .action(checkLogged); program .command('logout') .description('退出登录') .action(logout); program .command('test ') .description('测试更新入口') .action(testVersion); program .command('version [type]') .description('查看版本信息/发布版本/删除版本/设置版本, action 可选 view/new/delete/set-web-update/set-app-update/set-next-app-update') .action(getVersion); program .command('update [type] [all]') .description('查看更新信息/发布更新, action 可选 view/post, view type 可选 id/all; post type 可选 web/app') .option('--skip', '跳过构建') .option('--ndelete', '不删除构建文件') .action(getUpdate); function start() { program.parse(process.argv); } initAuth().then(start); <<<<<<< HEAD process.on('unhandledRejection', (reason) => { let reasonStr = ''; if (typeof reason === 'string') { reasonStr = reason; } else if (typeof reason === 'object') { if (reason.message) { reasonStr = reason.message; } } else { reasonStr = reason.toString(); } logError('UnhandledRejection:', reasonStr) }) ======= process.on('unhandledRejection', (reason, p) => { console.error('Promise: ', p, 'Reason: ', reason) }) >>>>>>> 7c11b917b224c1bfd3d86d6cc15ea83fede0098f