feat: adding linter for commits
This commit is contained in:
88
node_modules/husky/lib/installer/hooks.js
generated
vendored
Normal file
88
node_modules/husky/lib/installer/hooks.js
generated
vendored
Normal file
@ -0,0 +1,88 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
const is_1 = require("./is");
|
||||
const getBanner_1 = require("./getBanner");
|
||||
exports.huskyIdentifier = '# husky';
|
||||
function getHookScript() {
|
||||
return `#!/bin/sh
|
||||
${exports.huskyIdentifier}
|
||||
|
||||
${getBanner_1.getBanner()}
|
||||
|
||||
. "$(dirname "$0")/husky.sh"
|
||||
`;
|
||||
}
|
||||
exports.getHookScript = getHookScript;
|
||||
const hookList = [
|
||||
'applypatch-msg',
|
||||
'pre-applypatch',
|
||||
'post-applypatch',
|
||||
'pre-commit',
|
||||
'pre-merge-commit',
|
||||
'prepare-commit-msg',
|
||||
'commit-msg',
|
||||
'post-commit',
|
||||
'pre-rebase',
|
||||
'post-checkout',
|
||||
'post-merge',
|
||||
'pre-push',
|
||||
'post-update',
|
||||
'push-to-checkout',
|
||||
'pre-auto-gc',
|
||||
'post-rewrite',
|
||||
'sendemail-validate',
|
||||
];
|
||||
function getHooks(gitHooksDir) {
|
||||
return hookList.map((hookName) => path.join(gitHooksDir, hookName));
|
||||
}
|
||||
function writeHook(filename, script) {
|
||||
fs.writeFileSync(filename, script, 'utf-8');
|
||||
fs.chmodSync(filename, 0o0755);
|
||||
}
|
||||
function createHook(filename) {
|
||||
const name = path.basename(filename);
|
||||
const hookScript = getHookScript();
|
||||
// Check if hook exist
|
||||
if (fs.existsSync(filename)) {
|
||||
const hook = fs.readFileSync(filename, 'utf-8');
|
||||
// Migrate
|
||||
if (is_1.isGhooks(hook)) {
|
||||
console.log(`migrating existing ghooks script: ${name}`);
|
||||
return writeHook(filename, hookScript);
|
||||
}
|
||||
// Migrate
|
||||
if (is_1.isPreCommit(hook)) {
|
||||
console.log(`migrating existing pre-commit script: ${name}`);
|
||||
return writeHook(filename, hookScript);
|
||||
}
|
||||
// Update
|
||||
if (is_1.isHusky(hook) || is_1.isYorkie(hook)) {
|
||||
return writeHook(filename, hookScript);
|
||||
}
|
||||
// Skip
|
||||
console.log(`skipping existing user hook: ${name}`);
|
||||
return;
|
||||
}
|
||||
// Create hook if it doesn't exist
|
||||
writeHook(filename, hookScript);
|
||||
}
|
||||
function createHooks(gitHooksDir) {
|
||||
getHooks(gitHooksDir).forEach(createHook);
|
||||
}
|
||||
exports.createHooks = createHooks;
|
||||
function canRemove(filename) {
|
||||
if (fs.existsSync(filename)) {
|
||||
const data = fs.readFileSync(filename, 'utf-8');
|
||||
return is_1.isHusky(data);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function removeHook(filename) {
|
||||
fs.unlinkSync(filename);
|
||||
}
|
||||
function removeHooks(gitHooksDir) {
|
||||
getHooks(gitHooksDir).filter(canRemove).forEach(removeHook);
|
||||
}
|
||||
exports.removeHooks = removeHooks;
|
Reference in New Issue
Block a user