Skip to main content

🌀 Options for Bash.

Project description

🌀 bluer-options

🌀 bluer_options implements an options argument for Bash.

installation

pip install bluer_options

if using outside the bluer-ai ecosystem, add this line to ~/.bash_profile or ~/.bashrc,

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

for more refer to 🔻 giza.

usage

let the function receive one or more options arguments (example below) then parse them with bluer_ai_option, bluer_ai_option_int, and bluer_ai_option_choice.

function func() {
    local options=$1

    local var=$(bluer_ai_option "$options" var default)
    local key=$(bluer_ai_option_int "$options" key 0)
    local choice=$(bluer_ai_option_choice "$options" value_1,value_2,value_3 default)

    :
}

this enables the user to call func as,

func var=12,~key,value_1

all options have defaults and order doesn't matter.

example 1

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,
}
example 2

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 bluer-options. this will also install blueness.

pip install bluer_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


🌀 blue-options for the Global South.


pylint pytest PyPI version PyPI - Downloads

built by 🌀 blueness-3.118.1.

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

bluer_options-5.269.1.tar.gz (32.1 kB view details)

Uploaded Source

Built Distribution

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

bluer_options-5.269.1-py3-none-any.whl (47.4 kB view details)

Uploaded Python 3

File details

Details for the file bluer_options-5.269.1.tar.gz.

File metadata

  • Download URL: bluer_options-5.269.1.tar.gz
  • Upload date:
  • Size: 32.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for bluer_options-5.269.1.tar.gz
Algorithm Hash digest
SHA256 d6b3112a1b7279ddb7e613bcfff7441256d3ec89824e700cb13ccf4da76f5b05
MD5 0558900e0e7f45522e4aa915044b524f
BLAKE2b-256 102e6841f6ac15aaba6609da4e6de5d1d43ca2d24e1fd5df910c2f2f6eff9f40

See more details on using hashes here.

File details

Details for the file bluer_options-5.269.1-py3-none-any.whl.

File metadata

File hashes

Hashes for bluer_options-5.269.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a467a1d1dfc893444cce98c4fcf40db5cb270656ba9887155dccf26be175b45c
MD5 2c0a6cecb7c361bf876944070e4c7234
BLAKE2b-256 893b78d5e15c0f5daa9026ba8e34fca523023b6e5abba8b8f2869727a4631775

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