A command-line folder manager for archiving and restoring a long-term set of projects.
- Free software: BSD license
- Documentation: https://proj.readthedocs.org.
proj
assumes the following working setup:
- You have a directory of active projects that you're working on (e.g. ~/Projects)
- You have a directory of inactive projects, your archive (e.g. ~/Archive)
Given this setup, proj
helps you add and remove projects from your archive, and keeps your archive organised in <year>/<quarter>
subfolders, based on when each project was last worked on.
Install the package with pip:
pip install proj
Then, tell proj
where your archive directory is, by creating a ~/.proj.yml
file
archive_dir: _archive
You can enable compression for archives by adding more directives to the YAML file:
compression: true compression_format: bztar
The supported formats are: tar
, gztar
, bztar
and zip
.
Use proj to get rid of clutter in your main directory of projects by archiving ones that aren't being worked on. Proj will detect when you last made a change and file it accordingly.
$ ls
cocktails-that-are-blue news-for-llamas old-crusty-project
$ proj archive old-crusty-project
old-crusty-project -> /Users/lars/Archive/2012/q3/old-crusty-project
$ ls
cocktails-that-are-blue news-for-llamas
$ proj list
2012/q3/old-crusty-project
Now we've archived this project, but we can restore it at any time.
$ proj restore old-crusty-project
/Users/lars/Archive/2012/q3/old-crusty-project -> old-crusty-project
$ ls
cocktails-that-are-blue news-for-llamas old-crusty-project
proj archive
: archive a project to an appropriate directoryproj restore
: restore a project from the archiveproj list
: search the archive for a project