UNPKG

tuture

Version:

Write tutorials from the future, with the power of Git and community.

57 lines (56 loc) 2.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const command_1 = require("@oclif/command"); const fs_extra_1 = tslib_1.__importDefault(require("fs-extra")); const rc_1 = tslib_1.__importDefault(require("rc")); const utils_1 = require("./utils"); const git_1 = require("./utils/git"); const config_1 = tslib_1.__importDefault(require("./config")); const constants_1 = require("./constants"); class BaseCommand extends command_1.Command { constructor() { super(...arguments); // User configurations. this.userConfig = config_1.default; } async init() { this.userConfig = rc_1.default('tuture', config_1.default); // If not initialize with tuture, then do initialize operation if (!(await utils_1.checkInitStatus(true))) { git_1.appendGitHook(); if (!fs_extra_1.default.existsSync(constants_1.TUTURE_ROOT)) { fs_extra_1.default.mkdirSync(constants_1.TUTURE_ROOT); } if (fs_extra_1.default.existsSync(constants_1.TUTURE_IGNORE_PATH)) { const patterns = this.userConfig.ignoredFiles.concat(fs_extra_1.default .readFileSync(constants_1.TUTURE_IGNORE_PATH) .toString() .split('\n') .filter((pattern) => !pattern.match(/#/) && pattern.match(/\b/))); this.userConfig.ignoredFiles = patterns; } } } async finally() { // Clean tuture root if it's empty, since it's created for no reason.. if (fs_extra_1.default.existsSync(constants_1.TUTURE_ROOT) && fs_extra_1.default.readdirSync(constants_1.TUTURE_ROOT).length === 0) { fs_extra_1.default.removeSync(constants_1.TUTURE_ROOT); git_1.removeGitHook(); } if (await git_1.git.checkIsRepo()) { const { all } = await git_1.git.branchLocal(); if (all.includes('master')) { try { // Ensure we are back to master branch. await git_1.git.checkout(['-q', 'master']); } catch (_a) { // Just silently failed. } } } } } exports.default = BaseCommand;