UNPKG

@herbertgao/surgio

Version:

Generating rules for Surge, Clash, Quantumult like a PRO

75 lines 2.3 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); require("source-map-support/register"); const path_1 = require("path"); const core_1 = require("@oclif/core"); const logger_1 = require("@surgio/logger"); const ora_1 = __importDefault(require("ora")); const redis_1 = __importDefault(require("./redis")); const config_1 = require("./config"); const error_helper_1 = require("./utils/error-helper"); class BaseCommand extends core_1.Command { flags; args; surgioConfig; ora = (0, ora_1.default)({ stream: process.stdout, }); projectDir; constructor(argv, config) { super(argv, config); } async init() { await super.init(); const { args, flags } = await this.parse({ flags: this.ctor.flags, baseFlags: super.ctor.baseFlags, args: this.ctor.args, strict: this.ctor.strict, }); this.flags = flags; this.args = args; // istanbul ignore next if (flags.verbose) { logger_1.transports.console.level = 'debug'; } if (flags.project.startsWith('.')) { flags.project = (0, path_1.resolve)(process.cwd(), flags.project); } this.projectDir = flags.project; this.surgioConfig = (0, config_1.loadConfig)(this.projectDir); } async catch(err) { if (this.ora.isSpinning) { this.ora.fail(); } await error_helper_1.errorHandler.call(this, err); this.exit(err.exitCode || 1); } async cleanup() { await redis_1.default.destroyRedis(); if (this.ora.isSpinning) { this.ora.succeed(); } } } BaseCommand.enableJsonFlag = true; BaseCommand.baseFlags = { project: core_1.Flags.string({ char: 'p', description: 'Surgio 配置目录', default: './', helpGroup: 'GLOBAL', }), verbose: core_1.Flags.boolean({ char: 'V', description: '打印调试日志', default: false, helpGroup: 'GLOBAL', }), }; exports.default = BaseCommand; //# sourceMappingURL=base-command.js.map