@herbertgao/surgio
Version:
Generating rules for Surge, Clash, Quantumult like a PRO
75 lines • 2.3 kB
JavaScript
;
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