Repo Browser

bashcards/bashcards-android
cards/493009494878--foux-installer/assets/raw.sh
#!/usr/bin/env bash
set -euo pipefail;bash -c $'RED="\\e[31m"; GREEN="\\e[32m"; YELLOW="\\e[33m"; BLUE="\\e[34m"\nMAGENTA="\\e[35m"; CYAN="\\e[36m"; GRAY="\\e[90m"; RESET="\\e[0m"\nBRIGHT="\\e[1m"; WHITE="\\e[97m"\nPREFIXES=(lib gnome linux python3 node docker k8s vim gcc openssl systemd mesa amd intel)\nSUFFIXES=(core dev utils common bin libs daemon plugin base engine mod)\nREPOS=("http://archive.ubuntu.com/ubuntu" "http://security.ubuntu.com/ubuntu" "https://packages.cloud.google.com/apt")\nDISTROS=(focal jammy noble bionic)\nSECTIONS=(main universe multiverse restricted)\nSPEED="${SPEED:-1.0}"\nMODE="${MODE:-mix}"\nrand(){ shuf -i "$1"-"$2" -n 1; }\nrand_item(){ local a=("$@"); echo "${a[$(rand 0 $((${#a[@]}-1)))]}"; }\npkg_name(){ echo "$(rand_item "${PREFIXES[@]}")-$(rand_item "${SUFFIXES[@]}")"; }\nversion(){ echo "$(rand 0 9).$(rand 0 20).$(rand 0 99)-$(rand 1 5)ubuntu$(rand 1 4)"; }\npause(){\n  local min="$1" max="$2"\n  local t\n  t="$(awk -v min="$min" -v max="$max" \'BEGIN{srand(); print min+rand()*(max-min)}\')"\n  awk -v t="$t" -v s="$SPEED" \'BEGIN{v=t*s; if(v<0) v=0; printf "%.3f\\n", v}\' | xargs sleep\n}\nprogress_bar(){\n  local label="$1" width=38 filled empty i\n  echo -ne "\\e[?25l"\n  for i in $(seq 0 "$(rand 95 100)"); do\n    filled=$((i*width/100)); empty=$((width-filled))\n    printf "\\r${BRIGHT}%s${RESET} " "$label"\n    printf "${WHITE}"; printf "█%.0s" $(seq 1 "$filled")\n    printf "${GRAY}";  printf "░%.0s" $(seq 1 "$empty")\n    printf "${RESET} ${GREEN}%d%%%s" "$i" "$RESET"\n    pause 0.01 0.05\n  done\n  echo -ne "\\r${BRIGHT}$label${RESET} "\n  printf "█%.0s" $(seq 1 "$width")\n  echo -e " ${GREEN}100%${RESET}"\n  echo -ne "\\e[?25h"\n}\nprint_prompt(){\n  echo -e "${GREEN}➜${RESET} ${CYAN}~${RESET} ${GRAY}git:(${RED}main${GRAY})${RESET} $1"\n  pause 0.15 0.35\n}\napt_update_sim(){\n  print_prompt "sudo apt-get update"\n  local i type color r repo distro section size\n  for i in $(seq 1 "$(rand 15 40)"); do\n    type="Get"; color="$BLUE"\n    r="$(rand 1 100)"\n    [[ "$r" -gt 90 ]] && type="Ign" && color="$GRAY"\n    [[ "$r" -gt 75 && "$r" -le 90 ]] && type="Hit" && color="$GREEN"\n    repo="$(rand_item "${REPOS[@]}")"\n    distro="$(rand_item "${DISTROS[@]}")"\n    section="$(rand_item "${SECTIONS[@]}")"\n    size=""\n    [[ "$type" == "Get" ]] && size=" [${YELLOW}$(rand 1000 50000) B${RESET}]"\n    echo -e "${color}${type}:${i}${RESET} $repo ${CYAN}$distro${RESET} $section$size"\n    pause 0.02 0.12\n  done\n  echo -e "Fetched ${YELLOW}$(rand 3000 90000) kB${RESET} in $(rand 1 3)s"\n  echo -e "${GRAY}Reading package lists...${RESET} Done"\n}\napt_install_sim(){\n  local count pkgs=() _ pkg v\n  count="$(rand 3 12)"\n  for _ in $(seq 1 "$count"); do pkgs+=("$(pkg_name)"); done\n  print_prompt "sudo apt-get install -y ${pkgs[*]}"\n  echo "Reading package lists... Done"\n  echo "Building dependency tree..."\n  echo "Reading state information... Done"\n  echo -e "${CYAN}The following NEW packages will be installed:${RESET}"\n  echo -e "  ${BRIGHT}${pkgs[*]}${RESET}"\n  echo "Need to get $(rand 10 400) MB of archives."\n  echo "After this operation, $(rand 200 1500) MB of disk space will be used."\n  pause 0.5 1\n  for pkg in "${pkgs[@]}"; do\n    echo -e "${BLUE}Get:${RESET} $pkg $(version) [${YELLOW}$(rand 100 8000) kB${RESET}]"\n    pause 0.03 0.15\n  done\n  echo -e "${GRAY}------------------------------------------------------------${RESET}"\n  progress_bar "Reading database ..."\n  for pkg in "${pkgs[@]}"; do\n    v="$(version)"\n    echo "Preparing to unpack .../$pkg-$v.deb ..."\n    pause 0.03 0.12\n    echo "Unpacking $pkg ($v) ..."\n    pause 0.04 0.2\n  done\n  for pkg in "${pkgs[@]}"; do\n    echo -e "Setting up ${GREEN}${pkg}${RESET} ($(version)) ..."\n    [[ "$(rand 0 100)" -gt 75 ]] && progress_bar "Compiling $pkg"\n    pause 0.05 0.25\n  done\n}\nbanner(){\n  clear\n  echo -e "${GREEN}User:${RESET} $USER"\n  echo -e "${GREEN}Host:${RESET} $(hostname)"\n  echo -e "${GRAY}System Check: OK${RESET}"\n  echo\n}\nrun_once(){\n  case "$MODE" in\n    update) apt_update_sim;;\n    install) apt_install_sim;;\n    *) if (( $(rand 1 100) > 50 )); then apt_update_sim; else apt_install_sim; fi;;\n  esac\n}\nendless(){\n  banner\n  while true; do\n    run_once\n    pause 0.4 1.2\n  done\n}\nset_speed(){\n  local s\n  read -r -p "Speed multiplier (e.g. 0.5 faster, 1.0 normal, 2.0 slower): " s\n  [[ -z "${s:-}" ]] && return 0\n  awk -v x="$s" \'BEGIN{exit(!(x+0>0))}\' 2>/dev/null || { echo -e "${RED}Invalid${RESET}"; return 1; }\n  SPEED="$s"\n}\nset_mode(){\n  local x\n  echo -e "${BRIGHT}Mode:${RESET} 1) mix  2) update-only  3) install-only"\n  read -r -p "> " x\n  case "${x:-}" in\n    1) MODE="mix";;\n    2) MODE="update";;\n    3) MODE="install";;\n    *) echo -e "${RED}Invalid${RESET}";;\n  esac\n}\ntrap \'echo -e "\\n\'"${RED}"\'ABORTED BY USER\'"${RESET}"\'"; tput cnorm 2>/dev/null; exit\' SIGINT\nwhile true; do\n  banner\n  echo -e "${BRIGHT}${CYAN}FAKE INSTALLER MENU${RESET}"\n  echo -e "${WHITE}Mode:${YELLOW} $MODE${RESET}   ${WHITE}Speed:${YELLOW} x$SPEED${RESET}"\n  echo\n  echo -e "${WHITE}1) Start endless simulator${RESET}"\n  echo -e "${WHITE}2) Run ONE cycle now${RESET}"\n  echo -e "${WHITE}3) Run ONE apt-get update sim${RESET}"\n  echo -e "${WHITE}4) Run ONE apt-get install sim${RESET}"\n  echo -e "${WHITE}5) Set mode (mix/update/install)${RESET}"\n  echo -e "${WHITE}6) Set speed multiplier${RESET}"\n  echo -e "${WHITE}q) Quit${RESET}"\n  echo\n  read -r -p "> " ch\n  case "${ch:-}" in\n    1) endless;;\n    2) run_once; read -r -p "Enter to return... " _;;\n    3) apt_update_sim; read -r -p "Enter to return... " _;;\n    4) apt_install_sim; read -r -p "Enter to return... " _;;\n    5) set_mode;;\n    6) set_speed;;\n    q|Q) exit 0;;\n    *) echo -e "${RED}Invalid${RESET}"; sleep 0.6;;\n  esac\ndone\n'
NameTypeSize
auto-art.pngfile770,527
back-data-url.txtfile259,494
back-thumb.pngfile191,492
back.pngfile194,604
front-data-url.txtfile238,962
front-thumb.pngfile106,519
front.pngfile179,204
manifest.txtfile184
qr-payload.txtfile3,167
raw.shfile5,873