You're a prolific developer (or you want to be). Manage, keep track of, and show off your projects.
You're a prolific developer (or you want to be). Manage, keep track of, and show off your projects with ease.
$ npm install -g projects
For autocompletion you can redirect
projects --completion to a file in
~/.bash_completion (zsh is also supported) or use
which also contains a fallback to
_filedir so that you can still complete
files and directories (I've opened an
issue to get that improvement back
into omelette, the completion library we use).
|output shell aliases|
|run a command in each project directory|
|edit projects files|
|compact the projects database|
|get an attribute for a project|
|display repositories with unpushed commits|
|fill your projects database with your GitHub repositories|
|glob across all project directories|
|show the JSON for a given project|
|import your projects from plain JSON|
|export your projects to plain JSON|
|open a project's homepage|
|query your projects|
|get a reminder of what you were last working on|
|set an attribute to a given value for a project|
Projects is primarily a framework for making it easy to execute actions on one or more of your projects. For example, you could write a command to check the clean/dirty status of all of your checked out git repositories and list the dirty ones.
If you have an executable file in your PATH that starts with
you can execute it underneath projects (and you're encouraged to share them
$ alias p=projects$ cat ~/.config/projects[github]username = beaugunderson[projects]directory = ~/p$ p info vim-scss-instead$ p set vim-scss-instead homepage https://github.com/beaugunderson/vim-scss-insteadSet vim-scss-instead:homepage to ""$ p open vim-scss-instead # opens a web browser to the homepage URL$ p clone vim-scss-insteadCloning into '/Users/beau/p/vim-scss-instead'...remote: Counting objects: 5, done.remote: Compressing objects: 100% , done.remote: Total 5 , reused 5Receiving objects: 100% , done.$ p github<snip>Adding vim-scss-insteadAdding vim-human-dates<snip>Finished$ p git-unpushednode-helmsman: 6 commits ahead of originprojects: 3 commits ahead of origin
You can also use something like fzf to make selecting a project via the CLI very easy:
# cd to a project via fzf# open a project's URL via fzf# edit a project file with $EDITOR via fzf# note: requires gnu findutils# on OS X you'll want to:# `npm install -g ignore-pipe`# `brew install findutils --with-default-names`# edit a project file modified within in the last 7 days