mirror of
https://github.com/mjsarfatti/beddu.git
synced 2025-06-26 17:08:01 +02:00
Initial commit - v1.0
This commit is contained in:
commit
76d136f64c
20 changed files with 1350 additions and 0 deletions
173
demo/demo.sh
Executable file
173
demo/demo.sh
Executable file
|
@ -0,0 +1,173 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Import the beddu.sh library
|
||||
# shellcheck disable=SC1091
|
||||
source "$(dirname -- "$0")/../build/beddu.sh"
|
||||
|
||||
# Demo function to showcase the framework
|
||||
demo() {
|
||||
_violet=99
|
||||
_pink=219
|
||||
|
||||
line
|
||||
pen $_violet "╔═════════════════════════════════════════════╗"
|
||||
pen $_violet "║ ║"
|
||||
pen $_violet "║ ║"
|
||||
pen -n $_violet "║ "
|
||||
pen -n $_pink "Beddu.sh Demo"
|
||||
pen $_violet " ║"
|
||||
pen $_violet "║ ║"
|
||||
pen $_violet "║ ║"
|
||||
pen $_violet "╚═════════════════════════════════════════════╝"
|
||||
line
|
||||
line
|
||||
|
||||
line
|
||||
spin $_pink "Loading text formatting..."
|
||||
sleep 1
|
||||
spop
|
||||
upclear
|
||||
pen $_pink italic "-- Text formatting --"
|
||||
line
|
||||
pen bold "This text is bold"
|
||||
pen italic "This text is italic"
|
||||
pen underline "This text is underlined"
|
||||
line
|
||||
|
||||
line
|
||||
spin $_pink "Loading basic colors..."
|
||||
sleep 1
|
||||
spop
|
||||
upclear
|
||||
pen $_pink italic "-- Basic colors --"
|
||||
line
|
||||
pen red "Red text"
|
||||
pen green "Green text"
|
||||
pen yellow "Yellow text"
|
||||
pen blue "Blue text"
|
||||
pen purple "Purple text"
|
||||
pen cyan "Cyan text"
|
||||
pen white "White text"
|
||||
pen grey "Grey text"
|
||||
pen -n black "Black text"
|
||||
pen italic "[Black text - might not be visible]"
|
||||
line
|
||||
|
||||
line
|
||||
spin $_pink "Loading ANSI 256 colors..."
|
||||
sleep 1
|
||||
spop
|
||||
upclear
|
||||
pen $_pink italic "-- ANSI 256 colors (examples) --"
|
||||
line
|
||||
pen 39 "Light blue text (39)"
|
||||
pen 208 "Orange text (208)"
|
||||
pen 82 "Light green text (82)"
|
||||
line
|
||||
|
||||
line
|
||||
spin $_pink "Loading combined formatting..."
|
||||
sleep 1
|
||||
spop
|
||||
upclear
|
||||
pen $_pink italic "-- Combined formatting --"
|
||||
line
|
||||
pen bold blue "This text is bold and blue"
|
||||
pen bold italic red "This text is bold, italic and red"
|
||||
pen underline green "This text is underlined and green"
|
||||
pen bold 39 "This text is bold and light blue (ANSI 256 color 39)"
|
||||
pen italic 208 "This text is italic and orange (ANSI 256 color 208)"
|
||||
pen -n red "This is red "
|
||||
pen -n green "and this is green, "
|
||||
pen "all on the same line!"
|
||||
pen "And this is $(pen yellow "yellow"), and this is $(pen purple "purple")"
|
||||
line
|
||||
|
||||
line
|
||||
spin $_pink "Loading output utilities..."
|
||||
sleep 1
|
||||
spop
|
||||
upclear
|
||||
pen $_pink italic "-- Output utilities --"
|
||||
line
|
||||
check "Task completed successfully!"
|
||||
throw "Operation failed."
|
||||
line
|
||||
|
||||
line
|
||||
spin $_pink "Starting interactive experience..."
|
||||
sleep 1
|
||||
spop
|
||||
upclear
|
||||
pen $_pink italic "-- Interactive functions --"
|
||||
line
|
||||
|
||||
ask name "How can I call you?"
|
||||
pen "Hello, $(pen bold cyan "${name:?}")"
|
||||
line
|
||||
|
||||
choose color "What is your favorite color?" "Red" "Green" "Blue"
|
||||
pen "Nice choice, $(pen bold "${color:?}" "${color:?}")"
|
||||
line
|
||||
|
||||
if confirm "Would you like to continue with the demo?"; then
|
||||
pen "OK, let's $(pen bold green "continue")!"
|
||||
else
|
||||
pen "Too bad, I'll $(pen bold red "continue anyway")…"
|
||||
fi
|
||||
line
|
||||
|
||||
line
|
||||
spin $_pink "Loading output manipulation..."
|
||||
sleep 1
|
||||
spop --keep-cursor-hidden
|
||||
repen $_pink italic "-- Output manipulation --"
|
||||
line
|
||||
pen "This line will be replaced in 1 second..."
|
||||
sleep 1
|
||||
spop --keep-cursor-hidden
|
||||
repen "Processing your request..."
|
||||
sleep 1
|
||||
spop --keep-cursor-hidden
|
||||
upclear
|
||||
spin "Still working on it..."
|
||||
sleep 2
|
||||
check "Task completed successfully!"
|
||||
spin "Performing an operation that will fail (ask me how I know)"
|
||||
sleep 2
|
||||
throw "Operation failed"
|
||||
line
|
||||
|
||||
# This is a 12MB file
|
||||
local filename="commonswiki-20250501-pages-articles-multistream-index1.txt-p1p1500000.bz2"
|
||||
local baseurl="https://dumps.wikimedia.org/commonswiki/20250501"
|
||||
|
||||
line
|
||||
spin $_pink "Loading \`run\` utility..."
|
||||
sleep 1
|
||||
spop --keep-cursor-hidden
|
||||
repen $_pink italic "-- Run command output control --"
|
||||
line
|
||||
spin "Downloading file..."
|
||||
# `curl` writes to stderr, so we need to capture that
|
||||
if run --err output curl -O "$baseurl/$filename"; then
|
||||
check "Download complete!"
|
||||
line
|
||||
pen "${output:-}"
|
||||
else
|
||||
throw "Download failed!"
|
||||
fi
|
||||
line
|
||||
if confirm "Would you like to remove the downloaded file?"; then
|
||||
rm -f "$filename"
|
||||
check "File removed!"
|
||||
fi
|
||||
line
|
||||
pen bold green "All done!"
|
||||
line
|
||||
}
|
||||
|
||||
# If this script is executed directly, show the demo
|
||||
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
|
||||
demo
|
||||
fi
|
Loading…
Add table
Add a link
Reference in a new issue