Skip to main content

🌀 blue-options

🌀 blue_options implements an options argument for Bash.

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

 > vanwatch help
vanwatch ingest \
	area=<vancouver>,~batch,count=<-1>,dryrun,gif,model=<model-id>,~process,publish,~upload \
	-|<object-name> \
	[<args>]
 . ingest <area> -> <object-name>.

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 $(python -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

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.67.1.tar.gz (17.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.67.1-py3-none-any.whl (22.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: blue_options-4.67.1.tar.gz
  • Upload date:
  • Size: 17.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for blue_options-4.67.1.tar.gz
Algorithm Hash digest
SHA256 c4ba7c890ea6725f95c25474acc4eeaa860a6c5c13e0373adb3713684d74a197
MD5 ce06ad6b59e5a2c1a17386cc357aecf1
BLAKE2b-256 42528b6e870c0ddb40133c73b3060818cb38ba07aec0f1bafa2fd45bdf09a952

See more details on using hashes here.

File details

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

File metadata

  • Download URL: blue_options-4.67.1-py3-none-any.whl
  • Upload date:
  • Size: 22.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for blue_options-4.67.1-py3-none-any.whl
Algorithm Hash digest
SHA256 eaaf3262482b4bbc074293e85c124866521d11764ae5d66fa5656421c42c6e45
MD5 fd1a324057a827a41605b835e12d9868
BLAKE2b-256 f62e3cd18b27405ec0fdf067bd64e848764926b256822bbe931640daefefa071

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

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