Skip to main content

🌀 options for Bash.

Project description

🌀 blue-options

🌀 blue_options implements an options argument for Bash.

here is an example use of an options in the vancouver-watching 🌈 ingest command:

 > @help vanwatch ingest
vanwatch \
	ingest \
	[area=<area>,count=<-1>,~download,dryrun,~upload] \
	[-|<object-name>] \
	[process,count=<-1>,~download,dryrun,gif,model=<model-id>,publish,~upload] \
	[--detect_objects 0] \
	[--overwrite 1] \
	[--verbose 1]

this command takes in an options, an object, and args. an options is a string representation of a dictionary, such as,

area=<vancouver>,~batch,count=<-1>,dryrun,gif,model=<model-id>,~process,publish,~upload

which is equivalent, in json notation, to,

{
    "area": "vancouver",
    "batch": false,
    "count": -1,
    "dryrun": true,
    "gif": true,
    "model": "<model-id>",
    "process": false,
    "publish": true,
    "upload": false,
}

for more refer to 🔻 giza.

installation

pip install blue_options

add this line to your ~/.bash_profile or ~/.bashrc,

source $(python3 -m blue_options locate)/.bash/blue_options.sh

usage

let your function receive an options argument, then parse it with abcli_options and abcli_options_int.

function func() {
    local options=$1

    local var=$(abcli_options "$options" var default)
    local key=$(abcli_options_int "$options" key 0)

    [[ "$key" == 1 ]] &&
        echo "var=$var"
}

example 1

from reddit

How can I automate these tree commands I frequently need to type out? I would like to run:

git add .
git commit -m "Initial "commit"
git push

I got bored of typing them out each time. Can I make an alias or something like "gc" (for git commit). The commit message is always the same "Initial commit".

first, install blue-options. this will also install blueness.

pip install blue_options

then, copy example1.sh to your machine and add this line to the end of your bash_profile,

source <path/to/example1.sh>

now, you have access to the @git super command. here is how it works.

  1. @git help shows usage instructions (see below).
  2. @git commit runs the three commands. you can customize the message by running @git commit <message>. you can also avoid the push by running @git commit <message> ~push.
  3. for any <task> other than commit, @git <task> <args> runs git <task> <args>.
 > @git help
 @git commit [<message>] \
	~push
 . git commit with <message> and push.
@git <command>
 . git <command>.

image


pylint pytest PyPI version PyPI - Downloads

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

blue_options-4.229.1.tar.gz (28.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

blue_options-4.229.1-py3-none-any.whl (42.7 kB view details)

Uploaded Python 3

File details

Details for the file blue_options-4.229.1.tar.gz.

File metadata

  • Download URL: blue_options-4.229.1.tar.gz
  • Upload date:
  • Size: 28.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for blue_options-4.229.1.tar.gz
Algorithm Hash digest
SHA256 b6e285ec5565245e625cc6976316280785180c8fc8f1cdb055dab4c5bc098a9c
MD5 090ce2b98c03dee1e4a8d4d00e6786ae
BLAKE2b-256 10748a34a8f855f93afcde81b9690605daa47a3c94c47918508b4e473f33aa65

See more details on using hashes here.

File details

Details for the file blue_options-4.229.1-py3-none-any.whl.

File metadata

  • Download URL: blue_options-4.229.1-py3-none-any.whl
  • Upload date:
  • Size: 42.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for blue_options-4.229.1-py3-none-any.whl
Algorithm Hash digest
SHA256 77603a19843b87091e0436f0ced95ae0235e2e3c7b6bbd9e3dedc71dc98fb5ab
MD5 bc49fb108d54ca42f5c1cc55631d8ebb
BLAKE2b-256 7c5a5a29eb3747f44e305d3dd4cbd34fcfb56e766f250492c6e8e54aff05b076

See more details on using hashes here.

Supported by

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