diff --git a/VERSION b/VERSION index 238d6e8..b0f3d96 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.0.7 +1.0.8 diff --git a/bootstrap.sh b/bootstrap.sh index 7b3a666..9995091 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -196,6 +196,96 @@ EOF # Only execute installation if not sourced (Fix 3) if [ "$is_sourced" = false ]; then + clear 2>/dev/null || true + if [ -f "$_SCRIPT_DIR/pixel_art.ansi" ]; then + # Calculate terminal width and center the logo + _cols="" + if command -v tput >/dev/null 2>&1; then + _cols=$(tput cols 2>/dev/null) + fi + if [ -z "$_cols" ] || ! [ "$_cols" -gt 0 ] 2>/dev/null; then + if command -v stty >/dev/null 2>&1; then + _cols=$(stty size 2>/dev/null | cut -d' ' -f2) + fi + fi + if [ -z "$_cols" ] || ! [ "$_cols" -gt 0 ] 2>/dev/null; then + _cols="${COLUMNS:-0}" + fi + + _logo_width=64 + if [ -n "$_cols" ] && [ "$_cols" -ge "$_logo_width" ] 2>/dev/null; then + _padding_width=$(( (_cols - _logo_width) / 2 )) + _padding="" + if [ "$_padding_width" -gt 0 ]; then + _padding=$(printf "%${_padding_width}s" "") + fi + sed "s/^/$_padding/" "$_SCRIPT_DIR/pixel_art.ansi" + echo + cat << 'EOF' | sed "s/^/$_padding/" +▀█████████▄ ▄██████▄ ▄██████▄ ███ + ███ ███ ███ ███ ███ ███ ▀█████████▄ + ███ ███ ███ ███ ███ ███ ▀███▀▀██ + ▄███▄▄▄██▀ ███ ███ ███ ███ ███ ▀ +▀▀███▀▀▀██▄ ███ ███ ███ ███ ███ + ███ ██▄ ███ ███ ███ ███ ███ + ███ ███ ███ ███ ███ ███ ███ +▄█████████▀ ▀██████▀ ▀██████▀ ▄████▀ + + ▄████████ ███ ▄████████ ▄████████ ▄███████▄ + ███ ███ ▀█████████▄ ███ ███ ███ ███ ███ ███ + ███ █▀ ▀███▀▀██ ███ ███ ███ ███ ███ ███ + ███ ███ ▀ ▄███▄▄▄▄██▀ ███ ███ ███ ███ +▀███████████ ███ ▀▀███▀▀▀▀▀ ▀███████████ ▀█████████▀ + ███ ███ ▀███████████ ███ ███ ███ + ▄█ ███ ███ ███ ███ ███ ███ ███ + ▄████████▀ ▄████▀ ███ ███ ███ █▀ ▄████▀ + ███ ███ +EOF + echo + + # Display centered version of bootstrap in bold + _version="" + if [ -f "$_SCRIPT_DIR/VERSION" ]; then + _version=$(cat "$_SCRIPT_DIR/VERSION" | tr -d '\r\n') + fi + if [ -n "$_version" ]; then + _version_str="v$_version" + _version_len=${#_version_str} + _version_padding_width=$(( (_cols - _version_len) / 2 )) + _version_padding="" + if [ "$_version_padding_width" -gt 0 ]; then + _version_padding=$(printf "%${_version_padding_width}s" "") + fi + printf "%s\033[1m%s\033[0m\n" "$_version_padding" "$_version_str" + echo + fi + + # Display centered aqua blue progress bar + _bar_width=40 + _bar_padding_width=$(( (_cols - (_bar_width + 6)) / 2 )) + _bar_padding="" + if [ "$_bar_padding_width" -gt 0 ]; then + _bar_padding=$(printf "%${_bar_padding_width}s" "") + fi + + _filled_all="████████████████████████████████████████" + _empty_all="░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░" + + # Hide cursor + printf "\033[?25l" + + for i in $(seq 1 40); do + _filled_part="${_filled_all:0:i}" + _empty_part="${_empty_all:i}" + _pct=$(( i * 100 / 40 )) + printf "\r%s\033[38;2;0;210;255m%s\033[90m%s\033[0m %3d%%" "$_bar_padding" "$_filled_part" "$_empty_part" "$_pct" + sleep 0.05 + done + + # Restore cursor and print newline + printf "\033[?25h\n\n" + fi + fi install_bootstrap # Load the b function immediately in the current subshell diff --git a/pixel_art.ansi b/pixel_art.ansi new file mode 100644 index 0000000..cedd4a6 --- /dev/null +++ b/pixel_art.ansi @@ -0,0 +1,26 @@ + ▄▄▄▄▄ + ▄▄▄▄▄▄▄▄ ▄▄▄▄▄▄▄▄▄▄ + ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄  + ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄  + ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄   +▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄  +▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄   +▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄  +▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄  +▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄  +  ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄    +  ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄   +      ▄▄▄▄▄▄▄▄▄▄▄▄▄▄      diff --git a/readme.md b/readme.md index adc6671..45d5882 100644 --- a/readme.md +++ b/readme.md @@ -12,7 +12,7 @@ Here is a comparison of the size and complexity of using Bootstrap (`to b`) vers | application | to b | not to b | | :--- | :--- | :--- | -| **Antigravity CLI (`agy`)** | 197 lines | N/A (Official binary distribution) | +| **Antigravity CLI (`agy`)** | 197 lines | 239 lines (Official Antigravity install script) | | **Bat (`bat`)** | 155 lines | N/A (Standard package install) | | **Node.js & NVM (`node`)** | 156 lines | 507 lines (Official NVM install script) | | **Neovim (`nvim`)** | 178 lines | N/A (Official binary/config distribution) |