오프라인 공유를 위한 번들 github 저장소

여기에 잘 보관하고 싶었던 거대한 저장소를 보관할 스크립트를 찾고 있습니다.

번들 repo.js

const chalk = require("chalk");
const { execSync, exec } = require("child_process");
// const fs = require('fs');

if (!process.argv[2] || !process.argv[3]) {
  console.log(
    chalk.red(
      "Usage: node bundle-repo OWNER REPO-STRING [BUNDLE-TARGET-DIR]\nExample: node bundle-repo 'twitter' 'main, side, boom'"
    )
  );
  return;
}

const prefix = "[email protected]:";

const finalDir = process.argv[4] ? process.argv[4] + "/" : "";

const getPath = (r) => (!finalDir ? "" : finalDir + r);

process.argv[3].split(",").forEach((r) => {
  execSync(
    `git clone ${prefix}${process.argv[2]}/${r.trim()} ${getPath(r.trim())}`
  );
  const a = execSync(`ls -la ${getPath(r.trim())}`);
  console.log(a.toString());
  if (a.toString().split('\n')[0].split(' ')[1] != 0) {
    execSync(
      `cd ${getPath(
        r.trim()
      )} && git bundle create ${r.trim()}.bundle --all && mv ${r.trim()}.bundle .. && cd .. && rm -rf ${r.trim()}`
    );
  }
});

패키지.json

{
  "type": "module",
  "dependencies": {
    "chalk": "^3.0.0"
  }
}

바쁘기 전에 작동상의 결함을 피하기 위해 이 설정을 따르십시오.
  • 저장소에 대한 액세스 권한이 있는 github 계정에 대한 SSH 액세스를 설정합니다. Connect to github via SSH
  • "repo1, repo2"와 같이 쉼표로 구분된 repo 이름 문자열을 생성합니다. 스크립트에 사용 예제가 내장되어 있습니다
  • .
  • repo 문자열과 소유자/조직 문자열을 다음과 같은 문자열에 입력으로 전달합니다.

  • node bundle-repo 'twitter' 'main, side, boom' [optional target directory]
    

    가셔도 좋습니다. 체크아웃code on github

    읽어 주셔서 감사합니다 :)

    좋은 웹페이지 즐겨찾기