Skip to main content

console application to organize commands and environments

Project description

DSH - the absent minded developer's shell

Python versions MIT License


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:

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: usage demo image

Installation

pip install dsh

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dsh-2.2.1.tar.gz (19.4 kB view details)

Uploaded Source

Built Distribution

dsh-2.2.1-py3-none-any.whl (21.2 kB view details)

Uploaded Python 3

File details

Details for the file dsh-2.2.1.tar.gz.

File metadata

  • Download URL: dsh-2.2.1.tar.gz
  • Upload date:
  • Size: 19.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for dsh-2.2.1.tar.gz
Algorithm Hash digest
SHA256 f5f6a2317f04b5a37b4b071cdd7f78cfb47cb93ae9da6ba1890db6493989f657
MD5 a56da2c2b55a6e1a9520ac961de050ee
BLAKE2b-256 0e74e6b5a23d6e00b4888b9c73139bb2571fb78f263e41accfab8a3d67824bcb

See more details on using hashes here.

File details

Details for the file dsh-2.2.1-py3-none-any.whl.

File metadata

  • Download URL: dsh-2.2.1-py3-none-any.whl
  • Upload date:
  • Size: 21.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for dsh-2.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3e34e15391ae1741210776cf83015bcc372bc37939318967bfee40c187209945
MD5 4f2ace08b861f82c9bd42b338f12762c
BLAKE2b-256 461e7090174fbc61b5077a6c0bc466f740125d18ae2f5389c0e44e50137e6743

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page