Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cosmictoast/zpe
Z Project Environments
https://github.com/cosmictoast/zpe
project-management shell zsh
Last synced: 23 days ago
JSON representation
Z Project Environments
- Host: GitHub
- URL: https://github.com/cosmictoast/zpe
- Owner: CosmicToast
- License: mit
- Created: 2019-03-31T22:00:59.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2019-09-24T00:29:52.000Z (over 5 years ago)
- Last Synced: 2024-11-12T09:32:51.901Z (3 months ago)
- Topics: project-management, shell, zsh
- Language: Shell
- Size: 31.3 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.adoc
- License: LICENSE.md
Awesome Lists containing this project
README
= Z Project Environments
Chloe Kudryavtsev:build: https://cloud.drone.io/5paceToast/zpe
:repo: https://github.com/5paceToast
ifdef::env-github[]
:status:
endif::[]ifdef::status[]
image:https://cloud.drone.io/api/badges/5paceToast/zpe/status.svg[Build Status (Drone), link={build}]
endif::[]== A manager for your messy projects
=== Introduction
I have something like 30-50 repositories in my `~/Workspace`.
That is absolutely awful.
At some point, I tried to subdivide them into "categories" like "dev", "sys", "alpine" and so on.
That didn't help much.I clearly needed something to help me navigate around them, in a sort of "bookmark"ish way, and handle initial setup.
So I accidentally wrote the SysV RC in zsh.=== Installation
1. Acquire `zpe.zwc`
a. Download it from the GitHub releases page
b. Use gmake with zsh installed to generate it from source
2. Store it in a consistent location
3. Add the file to your `fpath` (example: `fpath+=( ~/.zsh/zpe.zwc )`)
4. Autoload all the contents of the digest file (example: `autoload -w ~/.zsh/zpe.zwc`)NOTE: If you're using the latest version of toasty-zsh, you can simply drop `zpe.zwc` into your `$zd/digests` folder.
=== Usage
`zpe` is the main function name.
Everything is done through subcommands.`zpe new`::
Creates a new project environment.
Effectively, this creates three new files inside `$ZPE_DIR` (`name.up`, `name.down` and `name.env`), and populates them with defaults.
You also can optionally pass it a directory for the project in question.
It defaults to the current working directory.
Example: `zpe new tzsh ~/Workspace/sys/toasty-zsh``zpe edit`::
Edits one of the three files created by `zpe new`.
Defaults to editing `name.up`.
Pass an extra parameter to give the suffix to edit.
Example: `zpe edit tzsh env``zpe load`::
Loads one of the following:
- global configuration (`zpe.conf`)
- `name.env` if only name is passed
- `name.ext` if name and an ext is passed
+
Example: `zpe load tzsh down``zpe ls|list`::
Lists the projects in their "callable" form.
Usually sorted, but not guaranteed to be such.
If an argument is provided, it takes that to be a project name and lists the files under that project (e.g "up" and "down").`zpe cat`::
Prints the contents of a given project file.`zpe cp|copy`::
Copies project from argument 1 to argument 2.
Best effort to translate variable names.`zpe mv|move`::
Renames project from argument 1 to argument 2.
Best effort to translate variable names.`zpe exec`::
Runs a command in the context of a project.
Example: `zpe exec tzsh git pull`
+
WARNING: The parsing is simplistic: `$1` is the project name and the other arguments are evaluated as-is.`zpe rm`::
Removes a project.
More precisely, it removes `$1.*` from `$ZPE_DIR`.
Example: `zpe rm tzsh``zpe up|down`::
Convenience shortcuts for `zpe load $1 up|down`.
Example: `zpe up tzsh`.