goto-project
Easy and fast project switching in your shell!
This is a like workon
for python, but more powerfull and not only for python.
Installation
Install it in your user-space with
pip3 install goto-project --user # or pip if python3 is your default interpreter
You can install zsh
completion with antigen
antigen bundle sivakov512/goto-project completions/zsh
Now type gt
, then press and you will see all available projects.
If you have project names awesome-project
you can type gt aw
, press and get gt awesome-project
.
Configuration and usage
Specify your project in ~/.goto-project.yaml
file.
goto-project: # this is a project name
path: ~/Devel/Projects/goto-project/ # path project
instructions: # any instructions to call when you switch project
- source ~/Devel/Envs/py3_goto-project/bin/activate
command: vim # command to run when project opened
clear_on_exit: false # if specified as false then terminal output will not be cleared on project close
To list all available projects call
gt
To open project call gt
with project name as argument
gt goto-project
To close project press C-D
. When you close project all changes will be breaked. For example, $PATH
will be restored if you extend it.
Usage example
For example you have a project named awesome-nuxt-blog
placed at ~/Projects/awesome-nuxt-blog
.
You need to extend your $PATH
with .mode_modules/.bin
, source .env/bin/activate
and show git status when project opened.
Create ~/.goto-project.yaml
with this content:
awesome-nuxt-blog:
path: ~/Projects/awesome-nuxt-blog
instructions:
- source .env/bin/activate
- export PATH=".node_modules/.bin:$PATH"
- git status
Now you at ~/
. Type gt awesome-nuxt-blog
. Now you at ~/Projects/awesome-nuxt-blog
.
All your instructions are executed. Also you see git status
output in your shell.
Type C-D
and now you in ~/
.
Screencast
...available here