Tools for managing sets of project-specific shell scripts when working across projects (e.g. multiple tabs open in a terminal at the same time, each one working in a different project). Each project has a bin
folder in which you put your project-specific scripts, and a bash function allows you to easily switch between projects (and list the available projects).
- Clone this repo to a folder, which we'll refer to as
<proj_base>
(e.g.~/.projects
) - Put the following in your
.bashrc
:
[[ -f <proj_base>/.bashrc ]] && . <proj_base>/.bashrc
proj [<project-name>]
With no arguments, proj
prints the list of valid projects, highlighting the current project.
With a valid project name as the sole argument, proj
sets the current project.
proj
comes with one built-in bash function, cdp
(cd project). This will take you to the project home for the current project.
Projects live as directories that are immediate children of <proj_base>/all
. Each project has a bin
subfolder and a home
symlink that points to the root of the project. Add scripts to the project's bin
folder, and they'll be available when that project is active in your environment.