Get a Github directory quickly by a simple command.
Usage
Copy the URL on your web browser.
Run copy-github-directory command with the URL. (It is similar git clone)
That's it!
Install
You don't need to install it.
npx copy-github-directory <url> [directory]
Just use it with npx command.
But, if you install (npm install -g copy-github-directory), you can get the short command ghcopy instead
of copy-github-directory.
Command
npx copy-github-directory https://github.com/rocket-hangar/workspace-template # It will be made `workspace-template` directory on your current location npx copy-github-directory https://github.com/rocket-hangar/workspace-template project # It will be made `project` directory on your current location npx copy-github-directory https://github.com/rocket-hangar/workspace-template . # It will be made files on your current location
Workspaces
If you use it in a yarn workspaces. (If there are exists yarn.lock and workspaces property on package.json)
It adds workspaces information to package.json files.
For example,
cd my-monorepo
npx copy-github-directory https://github.com/rocket-hangar/templates/tree/main/web projectIt will write package.json files like below.
// $PWD/package.json { "workspaces": ["project"] }
// $PWD/project/package.json { "name": "project" }
If you don't want to modify package.json files use the option --no-workspace <url>.
Alias
If you have URLs that you use frequently, you can give them aliases.
Make .ghcopy.json file on your home directory like below. ($HOME/.ghcopy.json)
{
"alias": {
"workspace": "https://github.com/rocket-hangar/workspace-template",
"web": "https://github.com/rocket-hangar/templates/tree/main/web",
"packages": "https://github.com/rocket-hangar/templates/tree/main/packages"
}
}Then you can use command with the alias.
copy-github-directory web my-web-project
Pre-configured alias
workspace:https://github.com/rocket-hangar/workspace-templateyarn berry based workspace templateweb:https://github.com/rocket-hangar/templates/tree/main/webvite.js based web app templatepackages:https://github.com/rocket-hangar/templates/tree/main/packagesrocket-punch based multi-package template


