1 unstable release
Uses old Rust 2015
0.1.0 | Sep 25, 2017 |
---|
#2089 in Development tools
8KB
107 lines
HackNow
Utility for automation of project directories and switching workspaces based on the GitHub directory structure - User/Project
This is a RIIR for fun of mraerino/hacknow.
Functionality
- Directory structure:
<projects-dir>/<user>/<repo>
- Checks if a directory for the specified repo exists
- No: Clones github repo into new directory
- Yes: Does
git fetch --all
for this repo - Then changes into the project directory
Getting started
This is available on cargo:
`cargo install hacknow``
Shell function
If you want your shell to switch into the project directory, you need to create a small function inside your shell config (.bashrc
, .zshrc
or similar)
hn() {
PROJECTPATH=$(hacknow "$@")
RETVAL=$?
cd $PROJECTPATH
return $RETVAL
}
Choose a different alias if hn
doesn't work for you.
Please note: On failure hacknow will echo just .
to stdout, so it should be safe to call cd
on it in every situation.
Usage
hacknow <user>/<repo> # Plain (without dir change)
hn <user>/<repo> # Needs a shell function (see above)
cd $(hacknow <user>/<repo>) # Alternative if the shell function does not work for you
Options
-d|--dir <dir> Choose base directory for your projects (default: $HOME)
--ssh Use ssh protocol for git remote
Examples
$ hn mraerino/gitmoji
$ hn mraerino/hacknow -d ~/src
$ hn festify/app --ssh
Ideas / Roadmap
- Bash completion
- Execute scripts inside project directory (like
nvm
,virtualenv
,yarn install
, IDE launch...)
Dependencies
~4.5MB
~86K SLoC