Repo Browser

bashcards/bashcards-android
Card bundle: cards/493009494878--foux-installer

Front / Back (click to flip)

front
back
Click card to view front/back

Raw Script

#!/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'

QR Payload

bash -c "$(echo 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 | base64 -d | gunzip)"
cards/493009494878--foux-installer/failed
      
NameTypeSize
README.mdfile1,101
assetsdir
failedfile1