UNPKG

radashi-helper

Version:
101 lines (82 loc) 3.78 kB
"use strict";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;