radashi-helper
Version:
Help with managing your own Radashi
101 lines (82 loc) • 3.78 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
var _chunk27XA2ZBLcjs = require('./chunk-27XA2ZBL.cjs');
var _chunkZP624W2Acjs = require('./chunk-ZP624W2A.cjs');
var _chunkST3J6QTNcjs = require('./chunk-ST3J6QTN.cjs');
var _chunk5R2KEZLQcjs = require('./chunk-5R2KEZLQ.cjs');
// src/util/pullRadashi.ts
var _fs = require('fs');
// src/util/isExactCommit.ts
function isExactCommit(branch) {
return /^([0-9a-f]{7,40}|v[0-9]+\.[0-9]+\.[0-9]+(-\S+)?)$/.test(branch);
}
// src/util/pullRadashi.ts
var pullRadashi = _chunk5R2KEZLQcjs.memo.call(void 0,
async function pullRadashi2(env) {
if (!env.radashiDir) {
throw new (0, _chunkST3J6QTNcjs.RadashiError)("No upstream repository exists");
}
const ref = await env.radashiRef;
if (_fs.existsSync.call(void 0, env.radashiDir)) {
if (isExactCommit(ref)) {
if (await isRepoInSync(ref, { cwd: env.radashiDir })) {
return;
}
_chunkST3J6QTNcjs.log.call(void 0, "Updating radashi. Please wait...");
await _chunkST3J6QTNcjs.exec.call(void 0,
"git",
["remote", "set-url", "origin", _chunkZP624W2Acjs.getRadashiCloneURL.call(void 0, ref)],
{ cwd: env.radashiDir }
).catch(_chunkST3J6QTNcjs.forwardStderrAndRethrow);
await _chunkST3J6QTNcjs.exec.call(void 0, "git", ["fetch", "origin", ref], {
cwd: env.radashiDir,
stdio: _chunk27XA2ZBLcjs.stdio
});
await _chunkST3J6QTNcjs.exec.call(void 0, "git", ["checkout", ref], {
cwd: env.radashiDir
}).catch(_chunkST3J6QTNcjs.forwardStderrAndRethrow);
} else {
await _chunkST3J6QTNcjs.exec.call(void 0, "git", ["checkout", ref], {
cwd: env.radashiDir,
reject: false
});
_chunkST3J6QTNcjs.log.call(void 0, "Updating radashi. Please wait...");
try {
await _chunkST3J6QTNcjs.exec.call(void 0, "git", ["pull", "origin", ref], {
cwd: env.radashiDir,
stdio: _chunk27XA2ZBLcjs.stdio
});
} catch (e) {
console.error("Pull exited with an error. Continuing...");
}
}
await _chunkZP624W2Acjs.prepareGitHubDefaultRepo.call(void 0, env.radashiDir);
} else {
_chunkST3J6QTNcjs.log.call(void 0, "Cloning radashi. Please wait...");
await _chunkZP624W2Acjs.cloneRadashi.call(void 0, ref, env.radashiDir, {
stdio: _chunk27XA2ZBLcjs.stdio
});
}
},
{
// Only run this function once per process.
key: (env) => _nullishCoalesce(_optionalChain([env, 'access', _ => _.pkg, 'access', _2 => _2.dependencies, 'optionalAccess', _3 => _3.radashi]), () => ( ""))
}
);
async function isRepoInSync(ref, opts) {
try {
const { stdout: refCommit } = await _chunkST3J6QTNcjs.exec.call(void 0,
"git",
["rev-parse", "--verify", ref],
opts
);
const { stdout: headCommit } = await _chunkST3J6QTNcjs.exec.call(void 0,
"git",
["rev-parse", "HEAD"],
opts
);
return refCommit === headCommit;
} catch (error) {
return false;
}
}
exports.pullRadashi = pullRadashi;