123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- "use strict";
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- const fs_1 = __importDefault(require("fs"));
- const path_1 = __importDefault(require("path"));
- const debug_1 = require("../debug");
- const getConf_1 = require("../getConf");
- const hooks_1 = require("./hooks");
- const localScript_1 = require("./localScript");
- const mainScript_1 = require("./mainScript");
- // This prevents the case where someone would want to debug a node_module that has
- // husky as devDependency and run npm install from node_modules directory
- function isInNodeModules(dir) {
- return dir.indexOf('node_modules') !== -1;
- }
- function getGitHooksDir(gitDir) {
- return path_1.default.join(gitDir, 'hooks');
- }
- function install({ absoluteGitCommonDir, relativeUserPkgDir, userPkgDir, pmName, // package manager name
- isCI, }) {
- // Get conf from package.json or .huskyrc
- const conf = getConf_1.getConf(userPkgDir);
- // Checks
- if (isCI && conf.skipCI) {
- console.log('CI detected, skipping Git hooks installation.');
- return;
- }
- if (isInNodeModules(userPkgDir)) {
- console.log('Trying to install from node_modules directory, skipping Git hooks installation.');
- return;
- }
- // Create hooks directory if it doesn't exist
- const gitHooksDir = getGitHooksDir(absoluteGitCommonDir);
- if (!fs_1.default.existsSync(gitHooksDir)) {
- fs_1.default.mkdirSync(gitHooksDir);
- }
- debug_1.debug(`Installing hooks in ${gitHooksDir}`);
- hooks_1.createHooks(gitHooksDir);
- localScript_1.createLocalScript(gitHooksDir, pmName, relativeUserPkgDir);
- mainScript_1.createMainScript(gitHooksDir);
- }
- exports.install = install;
- function uninstall({ absoluteGitCommonDir, userPkgDir, }) {
- if (isInNodeModules(userPkgDir)) {
- console.log('Trying to uninstall from node_modules directory, skipping Git hooks uninstallation.');
- return;
- }
- // Remove hooks
- const gitHooksDir = getGitHooksDir(absoluteGitCommonDir);
- hooks_1.removeHooks(gitHooksDir);
- localScript_1.removeLocalScript(gitHooksDir);
- mainScript_1.removeMainScript(gitHooksDir);
- }
- exports.uninstall = uninstall;
|