Skip to content
/ goto Public

🪄 A cli tool to magically goto folders and clone github repos

License

Notifications You must be signed in to change notification settings

ajhenry/goto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

goto

🪄 A cli tool to magically goto folders and clone github repos

Getting started • Installation • Configuration

Getting Started

Output example

When you run goto for the first time, it will prompt for a default dev directory of your choice

After that it automatically jumps to folders and clones the github repo if needed

Some commands to get you started

# Jump to the dev directory
goto

# Clone this repo and jump to the directory
goto ajhenry/goto

# Add a new github org to the list of orgs to clone from with a single keyword
goto --owners --update

# Update the default dev directory
goto --path --update

# Jump to a directory and open in code
gotoc ajhenry/goto

gotoc is the same functionality with the added benefit of opening in vscode.

Installation

You will also need the github cli in order to list and clone repos

Step 1: Install goto

npm i -g @ajhenry/goto

Step 2: Add goto to your shell

To start using goto, add it to your shell.

Add this to your configuration (usually ~/.zshrc or ~/.bashrc):

eval "$(goto-cli --init)"

How it works

You have to set a default dev directory like ~/dev or ~/projects.

After that, once you type in goto project-name it will first check if the directory exists.

If the directory does not exist, it will search github and clone the repo.

If that also fails, it will ask if you want to create it.

Configuration

The following flags are available:

-> goto -h
USAGE
  $ goto [PATH] [-l] [-p] [-u] [-d] [-i] [-v] [-o]

FLAGS
  -d, --debug    Enable debug output
  -i, --init     Initializes the goto function for bash
  -l, --list     List all repos
  -o, --owners   Update the list of owners to search for repos from
  -p, --path     List the default dev directory
  -u, --update   Update the dev directory or GitHub owners
  -v, --version  Prints the version number

Developing

This setups a development environment for you

npm i
npm link
npm run dev

# Now you can run the wrapper cli
goto-cli -v

Any changes that you make will be available immediately via the wrapper

Generating Pretty Terminal Output

Install these packages

brew install asciinema
npm i -g svg-term-cli

Run these commands to generate the output

asciinema rec ~/.goto/test.json --overwrite
svg-term --in  ~/.goto/test.json --out resources/terminal.svg --window

License

MIT