From 0f57c81fbd67ea76c7ff4a8d07a5c34d49c382f2 Mon Sep 17 00:00:00 2001 From: Danny Ben Shitrit Date: Sat, 28 Dec 2024 06:52:15 +0000 Subject: [PATCH] - Regenerate with bashly 1.2.7 --- doc/rush-add.1 | 2 +- doc/rush-add.md | 2 +- doc/rush-clone.1 | 2 +- doc/rush-clone.md | 2 +- doc/rush-completions.1 | 2 +- doc/rush-completions.md | 2 +- doc/rush-config.1 | 2 +- doc/rush-config.md | 2 +- doc/rush-copy.1 | 2 +- doc/rush-copy.md | 2 +- doc/rush-default.1 | 2 +- doc/rush-default.md | 2 +- doc/rush-edit.1 | 2 +- doc/rush-edit.md | 2 +- doc/rush-get.1 | 2 +- doc/rush-get.md | 2 +- doc/rush-info.1 | 2 +- doc/rush-info.md | 2 +- doc/rush-list.1 | 2 +- doc/rush-list.md | 2 +- doc/rush-pull.1 | 2 +- doc/rush-pull.md | 2 +- doc/rush-push.1 | 2 +- doc/rush-push.md | 2 +- doc/rush-remove.1 | 2 +- doc/rush-remove.md | 2 +- doc/rush-search.1 | 2 +- doc/rush-search.md | 2 +- doc/rush-show.1 | 2 +- doc/rush-show.md | 2 +- doc/rush-snatch.1 | 2 +- doc/rush-snatch.md | 2 +- doc/rush-undo.1 | 2 +- doc/rush-undo.md | 2 +- doc/rush.1 | 2 +- doc/rush.md | 2 +- op.conf | 2 +- rush | 96 ++++++++++++++++------------------------- settings.yml | 4 ++ src/lib/colors.sh | 9 ++++ 40 files changed, 87 insertions(+), 96 deletions(-) diff --git a/doc/rush-add.1 b/doc/rush-add.1 index d2497cb..d4516d5 100644 --- a/doc/rush-add.1 +++ b/doc/rush-add.1 @@ -1,6 +1,6 @@ .\" Automatically generated by Pandoc 3.2 .\" -.TH "rush\-add" "1" "October 2024" "" "Register a local repository." +.TH "rush\-add" "1" "December 2024" "" "Register a local repository." .SH NAME \f[B]rush add\f[R] \- Register a local repository. .SH SYNOPSIS diff --git a/doc/rush-add.md b/doc/rush-add.md index 936966c..e7369ea 100644 --- a/doc/rush-add.md +++ b/doc/rush-add.md @@ -1,6 +1,6 @@ % rush-add(1) | Register a local repository. % -% October 2024 +% December 2024 NAME ================================================== diff --git a/doc/rush-clone.1 b/doc/rush-clone.1 index d9358c8..1ec0980 100644 --- a/doc/rush-clone.1 +++ b/doc/rush-clone.1 @@ -1,6 +1,6 @@ .\" Automatically generated by Pandoc 3.2 .\" -.TH "rush\-clone" "1" "October 2024" "" "Clone a GitHub package repository." +.TH "rush\-clone" "1" "December 2024" "" "Clone a GitHub package repository." .SH NAME \f[B]rush clone\f[R] \- Clone a GitHub package repository. .SH SYNOPSIS diff --git a/doc/rush-clone.md b/doc/rush-clone.md index e2c2a8b..9135f49 100644 --- a/doc/rush-clone.md +++ b/doc/rush-clone.md @@ -1,6 +1,6 @@ % rush-clone(1) | Clone a GitHub package repository. % -% October 2024 +% December 2024 NAME ================================================== diff --git a/doc/rush-completions.1 b/doc/rush-completions.1 index 83cc634..bbee8f5 100644 --- a/doc/rush-completions.1 +++ b/doc/rush-completions.1 @@ -1,6 +1,6 @@ .\" Automatically generated by Pandoc 3.2 .\" -.TH "rush\-completions" "1" "October 2024" "" "Generate bash completions." +.TH "rush\-completions" "1" "December 2024" "" "Generate bash completions." .SH NAME \f[B]rush completions\f[R] \- Generate bash completions. .SH SYNOPSIS diff --git a/doc/rush-completions.md b/doc/rush-completions.md index afe6eae..fc9e801 100644 --- a/doc/rush-completions.md +++ b/doc/rush-completions.md @@ -1,6 +1,6 @@ % rush-completions(1) | Generate bash completions. % -% October 2024 +% December 2024 NAME ================================================== diff --git a/doc/rush-config.1 b/doc/rush-config.1 index a4a4331..a82bcb7 100644 --- a/doc/rush-config.1 +++ b/doc/rush-config.1 @@ -1,6 +1,6 @@ .\" Automatically generated by Pandoc 3.2 .\" -.TH "rush\-config" "1" "October 2024" "" "Show or edit the configuration file." +.TH "rush\-config" "1" "December 2024" "" "Show or edit the configuration file." .SH NAME \f[B]rush config\f[R] \- Show or edit the configuration file. .SH SYNOPSIS diff --git a/doc/rush-config.md b/doc/rush-config.md index 551266e..2229771 100644 --- a/doc/rush-config.md +++ b/doc/rush-config.md @@ -1,6 +1,6 @@ % rush-config(1) | Show or edit the configuration file. % -% October 2024 +% December 2024 NAME ================================================== diff --git a/doc/rush-copy.1 b/doc/rush-copy.1 index 44aef6e..cb96304 100644 --- a/doc/rush-copy.1 +++ b/doc/rush-copy.1 @@ -1,6 +1,6 @@ .\" Automatically generated by Pandoc 3.2 .\" -.TH "rush\-copy" "1" "October 2024" "" "Copy a package between local repositories." +.TH "rush\-copy" "1" "December 2024" "" "Copy a package between local repositories." .SH NAME \f[B]rush copy\f[R] \- Copy a package between local repositories. .SH SYNOPSIS diff --git a/doc/rush-copy.md b/doc/rush-copy.md index fc06b10..fd21e2f 100644 --- a/doc/rush-copy.md +++ b/doc/rush-copy.md @@ -1,6 +1,6 @@ % rush-copy(1) | Copy a package between local repositories. % -% October 2024 +% December 2024 NAME ================================================== diff --git a/doc/rush-default.1 b/doc/rush-default.1 index 5128472..7248e8d 100644 --- a/doc/rush-default.1 +++ b/doc/rush-default.1 @@ -1,6 +1,6 @@ .\" Automatically generated by Pandoc 3.2 .\" -.TH "rush\-default" "1" "October 2024" "" "Set a default repository." +.TH "rush\-default" "1" "December 2024" "" "Set a default repository." .SH NAME \f[B]rush default\f[R] \- Set a default repository. .SH SYNOPSIS diff --git a/doc/rush-default.md b/doc/rush-default.md index 7f50bbb..ac55699 100644 --- a/doc/rush-default.md +++ b/doc/rush-default.md @@ -1,6 +1,6 @@ % rush-default(1) | Set a default repository. % -% October 2024 +% December 2024 NAME ================================================== diff --git a/doc/rush-edit.1 b/doc/rush-edit.1 index 0538230..5c6935b 100644 --- a/doc/rush-edit.1 +++ b/doc/rush-edit.1 @@ -1,6 +1,6 @@ .\" Automatically generated by Pandoc 3.2 .\" -.TH "rush\-edit" "1" "October 2024" "" "Edit package files." +.TH "rush\-edit" "1" "December 2024" "" "Edit package files." .SH NAME \f[B]rush edit\f[R] \- Edit package files. .SH SYNOPSIS diff --git a/doc/rush-edit.md b/doc/rush-edit.md index 4f9fde5..67ff40f 100644 --- a/doc/rush-edit.md +++ b/doc/rush-edit.md @@ -1,6 +1,6 @@ % rush-edit(1) | Edit package files. % -% October 2024 +% December 2024 NAME ================================================== diff --git a/doc/rush-get.1 b/doc/rush-get.1 index 1269cbf..00b5e7c 100644 --- a/doc/rush-get.1 +++ b/doc/rush-get.1 @@ -1,6 +1,6 @@ .\" Automatically generated by Pandoc 3.2 .\" -.TH "rush\-get" "1" "October 2024" "" "Install a package." +.TH "rush\-get" "1" "December 2024" "" "Install a package." .SH NAME \f[B]rush get\f[R] \- Install a package. .SH SYNOPSIS diff --git a/doc/rush-get.md b/doc/rush-get.md index a50e9b4..a6d7621 100644 --- a/doc/rush-get.md +++ b/doc/rush-get.md @@ -1,6 +1,6 @@ % rush-get(1) | Install a package. % -% October 2024 +% December 2024 NAME ================================================== diff --git a/doc/rush-info.1 b/doc/rush-info.1 index fb7869d..1cd92ac 100644 --- a/doc/rush-info.1 +++ b/doc/rush-info.1 @@ -1,6 +1,6 @@ .\" Automatically generated by Pandoc 3.2 .\" -.TH "rush\-info" "1" "October 2024" "" "Show information about a package." +.TH "rush\-info" "1" "December 2024" "" "Show information about a package." .SH NAME \f[B]rush info\f[R] \- Show information about a package. .SH SYNOPSIS diff --git a/doc/rush-info.md b/doc/rush-info.md index 00d67a2..c21abef 100644 --- a/doc/rush-info.md +++ b/doc/rush-info.md @@ -1,6 +1,6 @@ % rush-info(1) | Show information about a package. % -% October 2024 +% December 2024 NAME ================================================== diff --git a/doc/rush-list.1 b/doc/rush-list.1 index 1ac5520..f7f81bc 100644 --- a/doc/rush-list.1 +++ b/doc/rush-list.1 @@ -1,6 +1,6 @@ .\" Automatically generated by Pandoc 3.2 .\" -.TH "rush\-list" "1" "October 2024" "" "Show packages in one or all repositories." +.TH "rush\-list" "1" "December 2024" "" "Show packages in one or all repositories." .SH NAME \f[B]rush list\f[R] \- Show packages in one or all repositories. .SH SYNOPSIS diff --git a/doc/rush-list.md b/doc/rush-list.md index aad4674..da43eff 100644 --- a/doc/rush-list.md +++ b/doc/rush-list.md @@ -1,6 +1,6 @@ % rush-list(1) | Show packages in one or all repositories. % -% October 2024 +% December 2024 NAME ================================================== diff --git a/doc/rush-pull.1 b/doc/rush-pull.1 index bf5c7b1..2593170 100644 --- a/doc/rush-pull.1 +++ b/doc/rush-pull.1 @@ -1,6 +1,6 @@ .\" Automatically generated by Pandoc 3.2 .\" -.TH "rush\-pull" "1" "October 2024" "" "Git pull one or all repositories." +.TH "rush\-pull" "1" "December 2024" "" "Git pull one or all repositories." .SH NAME \f[B]rush pull\f[R] \- Git pull one or all repositories. .SH SYNOPSIS diff --git a/doc/rush-pull.md b/doc/rush-pull.md index b4ca18d..9439ffa 100644 --- a/doc/rush-pull.md +++ b/doc/rush-pull.md @@ -1,6 +1,6 @@ % rush-pull(1) | Git pull one or all repositories. % -% October 2024 +% December 2024 NAME ================================================== diff --git a/doc/rush-push.1 b/doc/rush-push.1 index c602371..735153e 100644 --- a/doc/rush-push.1 +++ b/doc/rush-push.1 @@ -1,6 +1,6 @@ .\" Automatically generated by Pandoc 3.2 .\" -.TH "rush\-push" "1" "October 2024" "" "Git push one or all repositories." +.TH "rush\-push" "1" "December 2024" "" "Git push one or all repositories." .SH NAME \f[B]rush push\f[R] \- Git push one or all repositories. .SH SYNOPSIS diff --git a/doc/rush-push.md b/doc/rush-push.md index ae15fad..757a5ef 100644 --- a/doc/rush-push.md +++ b/doc/rush-push.md @@ -1,6 +1,6 @@ % rush-push(1) | Git push one or all repositories. % -% October 2024 +% December 2024 NAME ================================================== diff --git a/doc/rush-remove.1 b/doc/rush-remove.1 index 92c9c01..fb43047 100644 --- a/doc/rush-remove.1 +++ b/doc/rush-remove.1 @@ -1,6 +1,6 @@ .\" Automatically generated by Pandoc 3.2 .\" -.TH "rush\-remove" "1" "October 2024" "" "Unregister a local repository." +.TH "rush\-remove" "1" "December 2024" "" "Unregister a local repository." .SH NAME \f[B]rush remove\f[R] \- Unregister a local repository. .SH SYNOPSIS diff --git a/doc/rush-remove.md b/doc/rush-remove.md index b54b069..995e258 100644 --- a/doc/rush-remove.md +++ b/doc/rush-remove.md @@ -1,6 +1,6 @@ % rush-remove(1) | Unregister a local repository. % -% October 2024 +% December 2024 NAME ================================================== diff --git a/doc/rush-search.1 b/doc/rush-search.1 index 5581894..d437f09 100644 --- a/doc/rush-search.1 +++ b/doc/rush-search.1 @@ -1,6 +1,6 @@ .\" Automatically generated by Pandoc 3.2 .\" -.TH "rush\-search" "1" "October 2024" "" "Search in package names and info files." +.TH "rush\-search" "1" "December 2024" "" "Search in package names and info files." .SH NAME \f[B]rush search\f[R] \- Search in package names and info files. .SH SYNOPSIS diff --git a/doc/rush-search.md b/doc/rush-search.md index a6b8ca9..2104e27 100644 --- a/doc/rush-search.md +++ b/doc/rush-search.md @@ -1,6 +1,6 @@ % rush-search(1) | Search in package names and info files. % -% October 2024 +% December 2024 NAME ================================================== diff --git a/doc/rush-show.1 b/doc/rush-show.1 index aea6846..e7e2c5c 100644 --- a/doc/rush-show.1 +++ b/doc/rush-show.1 @@ -1,6 +1,6 @@ .\" Automatically generated by Pandoc 3.2 .\" -.TH "rush\-show" "1" "October 2024" "" "Show package files." +.TH "rush\-show" "1" "December 2024" "" "Show package files." .SH NAME \f[B]rush show\f[R] \- Show package files. .SH SYNOPSIS diff --git a/doc/rush-show.md b/doc/rush-show.md index 2be391f..51cd140 100644 --- a/doc/rush-show.md +++ b/doc/rush-show.md @@ -1,6 +1,6 @@ % rush-show(1) | Show package files. % -% October 2024 +% December 2024 NAME ================================================== diff --git a/doc/rush-snatch.1 b/doc/rush-snatch.1 index 0116ea4..c8e81d5 100644 --- a/doc/rush-snatch.1 +++ b/doc/rush-snatch.1 @@ -1,6 +1,6 @@ .\" Automatically generated by Pandoc 3.2 .\" -.TH "rush\-snatch" "1" "October 2024" "" "Install a package from a remote repo." +.TH "rush\-snatch" "1" "December 2024" "" "Install a package from a remote repo." .SH NAME \f[B]rush snatch\f[R] \- Install a package from a remote repo. .SH SYNOPSIS diff --git a/doc/rush-snatch.md b/doc/rush-snatch.md index d5b2c85..8a794ae 100644 --- a/doc/rush-snatch.md +++ b/doc/rush-snatch.md @@ -1,6 +1,6 @@ % rush-snatch(1) | Install a package from a remote repo. % -% October 2024 +% December 2024 NAME ================================================== diff --git a/doc/rush-undo.1 b/doc/rush-undo.1 index bae198f..111dd8a 100644 --- a/doc/rush-undo.1 +++ b/doc/rush-undo.1 @@ -1,6 +1,6 @@ .\" Automatically generated by Pandoc 3.2 .\" -.TH "rush\-undo" "1" "October 2024" "" "Uninstall a package." +.TH "rush\-undo" "1" "December 2024" "" "Uninstall a package." .SH NAME \f[B]rush undo\f[R] \- Uninstall a package. .SH SYNOPSIS diff --git a/doc/rush-undo.md b/doc/rush-undo.md index fe3541b..c1cf7b1 100644 --- a/doc/rush-undo.md +++ b/doc/rush-undo.md @@ -1,6 +1,6 @@ % rush-undo(1) | Uninstall a package. % -% October 2024 +% December 2024 NAME ================================================== diff --git a/doc/rush.1 b/doc/rush.1 index b5751da..6eec5de 100644 --- a/doc/rush.1 +++ b/doc/rush.1 @@ -1,6 +1,6 @@ .\" Automatically generated by Pandoc 3.2 .\" -.TH "rush" "1" "October 2024" "Version 0.7.15" "Personal package manager." +.TH "rush" "1" "December 2024" "Version 0.7.15" "Personal package manager." .SH NAME \f[B]rush\f[R] \- Personal package manager. .SH SYNOPSIS diff --git a/doc/rush.md b/doc/rush.md index cf909ef..a0db60c 100644 --- a/doc/rush.md +++ b/doc/rush.md @@ -1,6 +1,6 @@ % rush(1) Version 0.7.15 | Personal package manager. % Danny Ben Shitrit \ -% October 2024 +% December 2024 NAME ================================================== diff --git a/op.conf b/op.conf index 644fe32..225cd11 100644 --- a/op.conf +++ b/op.conf @@ -1,6 +1,6 @@ ## Script Generation -generate: bashly generate --upgrade && op man +generate: bashly generate --upgrade --env production && op man #? Regenerate script watch: op generate --watch diff --git a/rush b/rush index b6bac7b..311d5f2 100755 --- a/rush +++ b/rush @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# This script was generated by bashly 1.2.3 (https://bashly.dannyb.co) +# This script was generated by bashly 1.2.7 (https://bashly.dannyb.co) # Modifying it manually is not recommended # :wrapper.bash3_bouncer @@ -860,46 +860,6 @@ normalize_input() { done } -# :command.inspect_args -inspect_args() { - if ((${#args[@]})); then - readarray -t sorted_keys < <(printf '%s\n' "${!args[@]}" | sort) - echo args: - for k in "${sorted_keys[@]}"; do - echo "- \${args[$k]} = ${args[$k]}" - done - else - echo args: none - fi - - if ((${#other_args[@]})); then - echo - echo other_args: - echo "- \${other_args[*]} = ${other_args[*]}" - for i in "${!other_args[@]}"; do - echo "- \${other_args[$i]} = ${other_args[$i]}" - done - fi - - if ((${#deps[@]})); then - readarray -t sorted_keys < <(printf '%s\n' "${!deps[@]}" | sort) - echo - echo deps: - for k in "${sorted_keys[@]}"; do - echo "- \${deps[$k]} = ${deps[$k]}" - done - fi - - if ((${#env_var_names[@]})); then - readarray -t sorted_names < <(printf '%s\n' "${env_var_names[@]}" | sort) - echo - echo "environment variables:" - for k in "${sorted_names[@]}"; do - echo "- \$$k = ${!k:-}" - done - fi -} - # :command.user_lib # src/lib/abort.sh abort() { @@ -924,20 +884,29 @@ yellow() { print_in_color "\e[33m" "$*"; } blue() { print_in_color "\e[34m" "$*"; } magenta() { print_in_color "\e[35m" "$*"; } cyan() { print_in_color "\e[36m" "$*"; } +black() { print_in_color "\e[30m" "$*"; } +white() { print_in_color "\e[37m" "$*"; } + bold() { print_in_color "\e[1m" "$*"; } underlined() { print_in_color "\e[4m" "$*"; } + red_bold() { print_in_color "\e[1;31m" "$*"; } green_bold() { print_in_color "\e[1;32m" "$*"; } yellow_bold() { print_in_color "\e[1;33m" "$*"; } blue_bold() { print_in_color "\e[1;34m" "$*"; } magenta_bold() { print_in_color "\e[1;35m" "$*"; } cyan_bold() { print_in_color "\e[1;36m" "$*"; } +black_bold() { print_in_color "\e[1;30m" "$*"; } +white_bold() { print_in_color "\e[1;37m" "$*"; } + red_underlined() { print_in_color "\e[4;31m" "$*"; } green_underlined() { print_in_color "\e[4;32m" "$*"; } yellow_underlined() { print_in_color "\e[4;33m" "$*"; } blue_underlined() { print_in_color "\e[4;34m" "$*"; } magenta_underlined() { print_in_color "\e[4;35m" "$*"; } cyan_underlined() { print_in_color "\e[4;36m" "$*"; } +black_underlined() { print_in_color "\e[4;30m" "$*"; } +white_underlined() { print_in_color "\e[4;37m" "$*"; } # src/lib/config.sh config_show() { @@ -1897,9 +1866,6 @@ parse_requirements() { # :command.environment_variables_filter - env_var_names+=("RUSH_CONFIG") - env_var_names+=("RUSH_ROOT") - # :command.command_filter action=${1:-} @@ -2120,6 +2086,7 @@ rush_add_parse_requirements() { exit 1 fi + if [[ -z ${args['path']+x} ]]; then printf "missing required argument: PATH\nusage: rush add REPO PATH\n" >&2 @@ -2213,10 +2180,14 @@ rush_clone_parse_requirements() { done # :command.dependencies_filter - if command -v git >/dev/null 2>&1; then - deps['git']="$(command -v git | head -n1)" - else + missing_deps= + # :dependency.filter + if ! command -v git >/dev/null 2>&1; then printf "missing dependency: git\n" >&2 + missing_deps=1 + fi + + if [[ -n $missing_deps ]]; then exit 1 fi @@ -2328,10 +2299,14 @@ rush_pull_parse_requirements() { done # :command.dependencies_filter - if command -v git >/dev/null 2>&1; then - deps['git']="$(command -v git | head -n1)" - else + missing_deps= + # :dependency.filter + if ! command -v git >/dev/null 2>&1; then printf "missing dependency: git\n" >&2 + missing_deps=1 + fi + + if [[ -n $missing_deps ]]; then exit 1 fi @@ -2387,10 +2362,14 @@ rush_push_parse_requirements() { done # :command.dependencies_filter - if command -v git >/dev/null 2>&1; then - deps['git']="$(command -v git | head -n1)" - else + missing_deps= + # :dependency.filter + if ! command -v git >/dev/null 2>&1; then printf "missing dependency: git\n" >&2 + missing_deps=1 + fi + + if [[ -n $missing_deps ]]; then exit 1 fi @@ -2797,6 +2776,7 @@ rush_snatch_parse_requirements() { exit 1 fi + if [[ -z ${args['package']+x} ]]; then printf "missing required argument: PACKAGE\nusage: rush snatch GITHUB_USER PACKAGE [OPTIONS]\n" >&2 @@ -3234,6 +3214,10 @@ initialize() { long_usage='' set -e + # :command.globals + declare -g -A args=() + declare -g -a input=() + # src/initialize.sh CONFIG_FILE="${RUSH_CONFIG:-$HOME/rush.ini}" RUSH_ROOT="${RUSH_ROOT:-$HOME/rush-repos}" @@ -3241,12 +3225,6 @@ initialize() { # :command.run run() { - declare -A args=() - declare -A deps=() - declare -a other_args=() - declare -a env_var_names=() - declare -a input=() - normalize_input "$@" parse_requirements "${input[@]}" diff --git a/settings.yml b/settings.yml index d41c650..e52f4aa 100644 --- a/settings.yml +++ b/settings.yml @@ -1,3 +1,7 @@ +enable_view_markers: always +enable_env_var_names_array: never +enable_deps_array: never + usage_colors: caption: bold # command: ~ diff --git a/src/lib/colors.sh b/src/lib/colors.sh index cbdc015..7458e2d 100644 --- a/src/lib/colors.sh +++ b/src/lib/colors.sh @@ -26,17 +26,26 @@ yellow() { print_in_color "\e[33m" "$*"; } blue() { print_in_color "\e[34m" "$*"; } magenta() { print_in_color "\e[35m" "$*"; } cyan() { print_in_color "\e[36m" "$*"; } +black() { print_in_color "\e[30m" "$*"; } +white() { print_in_color "\e[37m" "$*"; } + bold() { print_in_color "\e[1m" "$*"; } underlined() { print_in_color "\e[4m" "$*"; } + red_bold() { print_in_color "\e[1;31m" "$*"; } green_bold() { print_in_color "\e[1;32m" "$*"; } yellow_bold() { print_in_color "\e[1;33m" "$*"; } blue_bold() { print_in_color "\e[1;34m" "$*"; } magenta_bold() { print_in_color "\e[1;35m" "$*"; } cyan_bold() { print_in_color "\e[1;36m" "$*"; } +black_bold() { print_in_color "\e[1;30m" "$*"; } +white_bold() { print_in_color "\e[1;37m" "$*"; } + red_underlined() { print_in_color "\e[4;31m" "$*"; } green_underlined() { print_in_color "\e[4;32m" "$*"; } yellow_underlined() { print_in_color "\e[4;33m" "$*"; } blue_underlined() { print_in_color "\e[4;34m" "$*"; } magenta_underlined() { print_in_color "\e[4;35m" "$*"; } cyan_underlined() { print_in_color "\e[4;36m" "$*"; } +black_underlined() { print_in_color "\e[4;30m" "$*"; } +white_underlined() { print_in_color "\e[4;37m" "$*"; }