Add upclear utility

This commit is contained in:
Manuele Sarfatti 2025-05-11 01:40:54 +02:00
parent 76d136f64c
commit 24633a743e
14 changed files with 42 additions and 56 deletions

View file

@ -27,14 +27,15 @@ demo: build
$(OUTPUT): $(ALL_SRC_FILES) $(OUTPUT): $(ALL_SRC_FILES)
@mkdir -p $(OUT_DIR) @mkdir -p $(OUT_DIR)
@echo '#! /usr/bin/env bash' > $(OUTPUT) @echo '#!/usr/bin/env bash' > $(OUTPUT)
@echo '# shellcheck disable=all' >> $(OUTPUT) @echo '# shellcheck disable=all' >> $(OUTPUT)
@echo '#' >> $(OUTPUT) @echo '#' >> $(OUTPUT)
@echo '# beddu.sh - A lightweight bash framework for interactive scripts and pretty output' >> $(OUTPUT) @echo '# beddu.sh - A lightweight bash framework for interactive scripts and pretty output' >> $(OUTPUT)
@echo '# https://github.com/mjsarfatti/beddu' >> $(OUTPUT) @echo '# https://github.com/mjsarfatti/beddu' >> $(OUTPUT)
@echo '#' >> $(OUTPUT) @echo '#' >> $(OUTPUT)
@echo '# Version: $(shell git describe --tags --dirty)' >> $(OUTPUT)
@echo '# Generated on: $(shell date)' >> $(OUTPUT) @echo '# Generated on: $(shell date)' >> $(OUTPUT)
@# Process each file, stripping (line) comments and empty lines @# Process each file, stripping comments and empty lines
@for file in $(ALL_SRC_FILES); do \ @for file in $(ALL_SRC_FILES); do \
echo "" >> $(OUTPUT); \ echo "" >> $(OUTPUT); \
grep -v '^\s*#' "$$file" | sed '/^[[:space:]]*$$/d' | sed 's/#[a-zA-Z0-9 ]*$$//' >> $(OUTPUT); \ grep -v '^\s*#' "$$file" | sed '/^[[:space:]]*$$/d' | sed 's/#[a-zA-Z0-9 ]*$$//' >> $(OUTPUT); \

View file

@ -1,19 +1,20 @@
#! /usr/bin/env bash #!/usr/bin/env bash
# shellcheck disable=all # shellcheck disable=all
# #
# beddu.sh - A lightweight bash framework for interactive scripts and pretty output # beddu.sh - A lightweight bash framework for interactive scripts and pretty output
# https://github.com/mjsarfatti/beddu # https://github.com/mjsarfatti/beddu
# #
# Generated on: Fri May 9 20:00:08 CEST 2025 # Version: v0.0.3-dirty
# Generated on: Sun May 11 01:40:08 CEST 2025
_q='?' readonly _q='?'
_a='' readonly _a=''
_o='◌' readonly _o='◌'
_O='●' readonly _O='●'
_mark='✓' readonly _mark='✓'
_warn='!' readonly _warn='!'
_cross='✗' readonly _cross='✗'
_spinner='⣷⣯⣟⡿⢿⣻⣽⣾' # See for alternatives: https://antofthy.gitlab.io/info/ascii/Spinners.txt readonly _spinner='⣷⣯⣟⡿⢿⣻⣽⣾' # See for alternatives: https://antofthy.gitlab.io/info/ascii/Spinners.txt
export _q _a _o _O _mark _warn _cross _spinner export _q _a _o _O _mark _warn _cross _spinner
up() { up() {
@ -32,9 +33,7 @@ cl() {
printf "\033[2K" printf "\033[2K"
} }
upclear() { upclear() {
up up; bol; cl
bol
cl
} }
line() { line() {
printf "\n" printf "\n"
@ -118,9 +117,7 @@ export -f run
check() { check() {
if spinning; then if spinning; then
spop spop
up upclear
bol
cl
fi fi
pen -n green "${_mark:-} " pen -n green "${_mark:-} "
pen "$@" pen "$@"
@ -183,9 +180,7 @@ export -f spin spop spinning
throw() { throw() {
if spinning; then if spinning; then
spop spop
up upclear
bol
cl
fi fi
pen -n red "${_cross:-} " pen -n red "${_cross:-} "
pen "$@" pen "$@"
@ -195,9 +190,7 @@ export -f throw
warn() { warn() {
if spinning; then if spinning; then
spop spop
up upclear
bol
cl
fi fi
pen -n yellow bold italic "${_warn:-!} " pen -n yellow bold italic "${_warn:-!} "
pen italic "$@" pen italic "$@"

View file

@ -1,13 +1,13 @@
#! /usr/bin/env bash #!/usr/bin/env bash
# @private # @private
_q='?' readonly _q='?'
_a='' readonly _a=''
_o='◌' readonly _o='◌'
_O='●' readonly _O='●'
_mark='✓' readonly _mark='✓'
_warn='!' readonly _warn='!'
_cross='✗' readonly _cross='✗'
_spinner='⣷⣯⣟⡿⢿⣻⣽⣾' # See for alternatives: https://antofthy.gitlab.io/info/ascii/Spinners.txt readonly _spinner='⣷⣯⣟⡿⢿⣻⣽⣾' # See for alternatives: https://antofthy.gitlab.io/info/ascii/Spinners.txt
export _q _a _o _O _mark _warn _cross _spinner export _q _a _o _O _mark _warn _cross _spinner

View file

@ -1,4 +1,4 @@
#! /usr/bin/env bash #!/usr/bin/env bash
# movements.sh - Cursor helper functions # movements.sh - Cursor helper functions
# Move cursor up one line # Move cursor up one line
@ -28,9 +28,7 @@ cl() {
# Clear line above # Clear line above
upclear() { upclear() {
up up; bol; cl
bol
cl
} }
# Print a single newline # Print a single newline

View file

@ -1,4 +1,4 @@
#! /usr/bin/env bash #!/usr/bin/env bash
# pen.sh - Print pretty text # pen.sh - Print pretty text
# @depends on: # @depends on:

View file

@ -1,4 +1,4 @@
#! /usr/bin/env bash #!/usr/bin/env bash
# run.sh - Execute commands with output/error capture # run.sh - Execute commands with output/error capture
# Execute a command with stdout and stderr capture capabilities # Execute a command with stdout and stderr capture capabilities

View file

@ -1,4 +1,4 @@
#! /usr/bin/env bash #!/usr/bin/env bash
# check.sh - Print a success message # check.sh - Print a success message
# @depends on: # @depends on:
@ -25,9 +25,7 @@ check() {
# If there is a spinner running, stop it and clear the line # If there is a spinner running, stop it and clear the line
if spinning; then if spinning; then
spop spop
up upclear
bol
cl
fi fi
pen -n green "${_mark:-} " pen -n green "${_mark:-} "

View file

@ -1,4 +1,4 @@
#! /usr/bin/env bash #!/usr/bin/env bash
# repen.sh - Overwrite the previous line with new text # repen.sh - Overwrite the previous line with new text
# @depends on: # @depends on:

View file

@ -1,4 +1,4 @@
#! /usr/bin/env bash #!/usr/bin/env bash
# spin.sh - Print a spinner with a message # spin.sh - Print a spinner with a message
# @depends on: # @depends on:

View file

@ -1,4 +1,4 @@
#! /usr/bin/env bash #!/usr/bin/env bash
# throw.sh - Print an throw message # throw.sh - Print an throw message
# @depends on: # @depends on:
@ -25,9 +25,7 @@ throw() {
# If there is a spinner running, stop it and clear the line # If there is a spinner running, stop it and clear the line
if spinning; then if spinning; then
spop spop
up upclear
bol
cl
fi fi
pen -n red "${_cross:-} " pen -n red "${_cross:-} "

View file

@ -1,4 +1,4 @@
#! /usr/bin/env bash #!/usr/bin/env bash
# warn.sh - Print a warning message # warn.sh - Print a warning message
# @depends on: # @depends on:
@ -25,9 +25,7 @@ warn() {
# If there is a spinner running, stop it and clear the line # If there is a spinner running, stop it and clear the line
if spinning; then if spinning; then
spop spop
up upclear
bol
cl
fi fi
pen -n yellow bold italic "${_warn:-!} " pen -n yellow bold italic "${_warn:-!} "

View file

@ -1,4 +1,4 @@
#! /usr/bin/env bash #!/usr/bin/env bash
# ask.sh - Get free text input from the user # ask.sh - Get free text input from the user
# @depends on: # @depends on:

View file

@ -1,4 +1,4 @@
#! /usr/bin/env bash #!/usr/bin/env bash
# choose.sh - Choose from a menu of options # choose.sh - Choose from a menu of options
# @depends on: # @depends on:

View file

@ -1,4 +1,4 @@
#! /usr/bin/env bash #!/usr/bin/env bash
# confirm.sh - Read a yes/no confirmation from the user # confirm.sh - Read a yes/no confirmation from the user
# @depends on: # @depends on: