Repo Browser

bashcards/bashcards-android
cards/521779570045--fresh-forensics-tools/assets/raw.sh
#!/usr/bin/env bash
set -euo pipefail;bash -c $'set -e\nblun=$\'\\033[1;34m\'\ngruv=$\'\\033[1;32m\'\nyenk=$\'\\033[1;33m\'\nrakk=$\'\\033[1;31m\'\nzclr=$\'\\033[0m\'\ntools=(fortune-mod cowsay cowsay-off xcowsay figlet toilet cmatrix oneko espeak libaa-bin bb pv aview x11-apps sysvbanner)\nttyp="/dev/tty"\n[[ -r "$ttyp" && -w "$ttyp" ]] || ttyp=""\noutp(){ [[ -n "$ttyp" ]] && printf "%b" "$1" >"$ttyp" || printf "%b" "$1"; }\ninpt(){ local t=""; [[ -n "$ttyp" ]] && IFS= read -r t <"$ttyp" || IFS= read -r t; printf "%s" "$t"; }\nclear_screen(){ outp $\'\\033[2J\\033[H\'; }\npause(){ outp "\\nEnter to continue... "; inpt >/dev/null; }\napt_cmd(){ command -v apt-get >/dev/null 2>&1 || { printf \'%s\' ""; return; }; [[ "$(id -u)" -eq 0 ]] && printf \'%s\' "apt-get" || printf \'%s\' "sudo apt-get"; }\nis_installed(){\n  command -v "$1" >/dev/null 2>&1 && return 0\n  dpkg -s "$1" >/dev/null 2>&1 && return 0\n  return 1\n}\ninstall_one_by_index(){\n  ap="$(apt_cmd)"\n  [[ -z "$ap" ]] && { outp "\\n${rakk}apt not available${zclr}\\n"; pause; return; }\n  local idx="$1"\n  local tool="${tools[$idx]}"\n  outp "\\n${yenk}Installing${zclr} $tool\\n"\n  $ap -y install "$tool" && outp "${gruv}Done${zclr}\\n" || outp "${rakk}Failed${zclr}\\n"\n  pause\n}\nlist_tools(){\n  while :; do\n    clear_screen\n    outp "${blun}LIST TOOLS${zclr}\\n\\n"\n    i=1\n    for t in "${tools[@]}"; do\n      if is_installed "$t"; then\n        outp " $i) ${gruv}OK${zclr}  $t\\n"\n      else\n        outp " $i) ${rakk}MISS${zclr} $t\\n"\n      fi\n      i=$((i+1))\n    done\n    outp "\\nSelect number to install, or press Enter to go back: "\n    sel="$(inpt)"\n    [[ -z "$sel" ]] && return\n    if [[ "$sel" =~ ^[0-9]+$ ]] && (( sel>=1 && sel<=${#tools[@]} )); then\n      idx=$((sel-1))\n      tool="${tools[$idx]}"\n      if is_installed "$tool"; then\n        outp "\\n${gruv}Already installed${zclr}: $tool\\n"\n        pause\n      else\n        install_one_by_index "$idx"\n      fi\n    else\n      outp "\\n${rakk}Invalid selection${zclr}\\n"\n      pause\n    fi\n  done\n}\ninstall_missing(){\n  clear_screen\n  ap="$(apt_cmd)"\n  [[ -z "$ap" ]] && { outp "${rakk}apt not available${zclr}\\n"; pause; return; }\n  miss=()\n  for t in "${tools[@]}"; do is_installed "$t" || miss+=("$t"); done\n  if (( ${#miss[@]} == 0 )); then outp "${gruv}Nothing missing${zclr}\\n"; pause; return; fi\n  outp "${blun}INSTALL ALL MISSING${zclr}\\n\\n"\n  for t in "${miss[@]}"; do outp "${yenk}Installing${zclr} $t\\n"; $ap -y install "$t" || true; done\n  outp "\\n${gruv}Done${zclr}\\n"\n  pause\n}\ninstall_all(){\n  clear_screen\n  ap="$(apt_cmd)"\n  [[ -z "$ap" ]] && { outp "${rakk}apt not available${zclr}\\n"; pause; return; }\n  outp "${blun}INSTALL ALL${zclr}\\n\\n"\n  for t in "${tools[@]}"; do outp "${yenk}Installing${zclr} $t\\n"; $ap -y install "$t" || true; done\n  outp "\\n${gruv}All done${zclr}\\n"\n  pause\n}\nupdate_system(){\n  clear_screen\n  ap="$(apt_cmd)"\n  [[ -z "$ap" ]] && { outp "${rakk}apt not available${zclr}\\n"; pause; return; }\n  outp "${blun}SYSTEM UPDATE${zclr}\\n\\n"\n  $ap update && $ap -y upgrade\n  pause\n}\nwhile :; do\n  clear_screen\n  outp "${blun}MENU${zclr}\\n\\n"\n  outp " 1) List Tools\\n"\n  outp " 2) Install All Missing\\n"\n  outp " 3) Install All\\n"\n  outp " 4) Update System\\n"\n  outp " q) Quit\\n\\n"\n  outp "> "\n  sel="$(inpt)"\n  case "$sel" in\n    1) list_tools ;;\n    2) install_missing ;;\n    3) install_all ;;\n    4) update_system ;;\n    q|Q) clear_screen; exit 0 ;;\n    *) outp "${rakk}Invalid${zclr}\\n"; pause ;;\n  esac\ndone\n'
NameTypeSize
auto-art.pngfile2,446,772
back-data-url.txtfile225,614
back-thumb.pngfile167,567
back.pngfile169,194
front-data-url.txtfile278,982
front-thumb.pngfile121,525
front.pngfile209,219
manifest.txtfile184
qr-payload.txtfile1,715
raw.shfile3,604