Skip to main content

🌀 an 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:

 > 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


PyPI version

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.38.1.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

blue_options-4.38.1-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: blue_options-4.38.1.tar.gz
  • Upload date:
  • Size: 10.2 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.38.1.tar.gz
Algorithm Hash digest
SHA256 de71f20a90a41eab10281d8520a49b4faa7cd68c496304306a8e3a9f54ea448d
MD5 469819dd11837f3c5c9d0e1a924c6d5b
BLAKE2b-256 f235006f74ddfbdcfc09af207eed538862b92c13fb26397908539698bd8f19c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for blue_options-4.38.1-py3-none-any.whl
Algorithm Hash digest
SHA256 09b3ca33ae3bd81f4f5d56537ce2bdcf4b7592b4b3487d8c72e999d12779744c
MD5 f3bf87cfa3e10ac20b0c3ca211e8e48b
BLAKE2b-256 fd6b5d8587a754aff2569740b68b0913a44cba525613a6d5913c7fc23f3ce3ab

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