https://github.com/flashashen/dsh2
shell to organize organize life on the command line
https://github.com/flashashen/dsh2
developer-tools python shell tool
Last synced: about 1 year ago
JSON representation
shell to organize organize life on the command line
- Host: GitHub
- URL: https://github.com/flashashen/dsh2
- Owner: flashashen
- License: mit
- Created: 2017-11-11T00:34:44.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2022-05-27T16:08:18.000Z (about 4 years ago)
- Last Synced: 2025-03-18T07:22:10.774Z (over 1 year ago)
- Topics: developer-tools, python, shell, tool
- Language: Python
- Homepage:
- Size: 115 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# DSH - the absent minded developer's shell


-------------------------------
Organize the stuff you do via command line
**You might use this if you:**
- Forget how you did that stuff in that project from a while back
- Forget where stuff is
- Want a single, tab-completed view of the stuff you do
- Want to store credentials and stuff outside of project config
- Need to do sutff in separate contexts/environments such as development vs production
- Want a consistent 'api' for doing stuff
## What it does
- At the most basic level, it executes commands expressed in yaml
- Creates a tree of 'contexts' which consist of vars, commands, and subcontexts
- Locates and merges contexts defined in .dsh.*.yml files
- Provides nested contexts/subshells for projects/environments under a root shell
- Changes current working directory to that of active shell
- Provides variable substitution
- Provides inherited variables with override
## Sample .dsh.yml:
``` yaml
dsh: personal.python.proj
vars:
app_name: projectX
test:
- pytest
install:
- pip list installed | grep {{app_name}} && pip uninstall -y {{app_name}}
- pip install -e .
release:
- tox -r
- rm -rf build && rm -rf dist
- python setup.py sdist bdist_wheel
- twine upload -r pypi -u {{PYPI_USER}} -p {PYPI_PASS} dist/{{app_name}}*
```
## Demo
With dsh.yml files similar to the above, a dsh session might look like this:

## Installation
```
pip install dsh
```