mirror of
https://github.com/webinstall/webi-installers.git
synced 2026-02-14 17:49:53 +00:00
58 lines
1.5 KiB
JavaScript
Executable File
58 lines
1.5 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
'use strict';
|
|
|
|
var Fs = require('node:fs/promises');
|
|
var Path = require('node:path');
|
|
|
|
async function copyScripts() {
|
|
var pkgDir = Path.join(__dirname, '..');
|
|
var scriptsDir = Path.join(pkgDir, '_scripts');
|
|
var gitFile = Path.join(pkgDir, '.git');
|
|
|
|
// if this is a submodule, '.git' will be a file with a
|
|
// path to the actual git module directory
|
|
var gitDir = await Fs.readFile(gitFile, 'utf8')
|
|
.catch(function (e) {
|
|
// console.error(e);
|
|
//return 'gitdir: ../.git/modules/installers';
|
|
return 'gitdir: ./.git';
|
|
})
|
|
.then(function (str) {
|
|
var parts = str.split(': ');
|
|
str = parts[1];
|
|
str = str.trim();
|
|
|
|
return Path.resolve(pkgDir, str);
|
|
});
|
|
|
|
var gitHooksDir = Path.join(gitDir, 'hooks');
|
|
|
|
var src = Path.join(scriptsDir, 'git-hooks-pre-commit.js');
|
|
var dst = Path.join(gitHooksDir, 'pre-commit');
|
|
|
|
console.info(`[git-hooks] Checking for pre-commit hooks...`);
|
|
var relSrc = Path.relative(pkgDir, src);
|
|
var relDst = Path.relative(pkgDir, dst);
|
|
await Fs.access(dst)
|
|
.then(function () {
|
|
console.info(`[git-hooks] Found ${relDst}`);
|
|
})
|
|
.catch(async function (e) {
|
|
// ignore e
|
|
await Fs.mkdir(gitHooksDir, { recursive: true });
|
|
await Fs.copyFile(src, dst);
|
|
await Fs.chmod(dst, 0o755);
|
|
console.info(`[git-hooks] Found template ${relSrc}`);
|
|
console.info(`[git-hooks] Initialized ${relDst}`);
|
|
});
|
|
}
|
|
|
|
copyScripts()
|
|
.then(function () {
|
|
process.exit(0);
|
|
})
|
|
.catch(function (e) {
|
|
console.error(e);
|
|
process.exit(1);
|
|
});
|