cards/385267042666--subdomain-scanner/assets/raw.sh
#!/usr/bin/env bash
(return 0 2>/dev/null)&&{ echo 'Do not source'; return 2; };set -euo pipefail;trap 'q' INT TERM;q(){ exit; };L(){ printf -- '-%.0s' $(seq 1 "$1"); };CYAN='\033[0;36m';RESET='\033[0m';menu(){ clear; echo; L 10; printf '| %-3s %-22s |\n' '#' 'Subdomain Scanner'; L 40; echo; printf '| %-3s %-32s |\n' '1' 'Discover Subdomains'; printf '| %-3s %-32s |\n' '2' 'Save Results to File'; printf '| %-3s %-32s |\n' '3' 'View Saved Results'; printf '| %-3s %-32s |\n' 'q' 'Quit'; L 40; echo; };discover_subdomains(){ clear; echo -e "${CYAN}Starting subdomain discovery...${RESET}"; if command -v sublist3r >/dev/null 2>&1; then read -r -p "Enter the domain to scan: " domain; [[ -z "$domain" ]] && { echo "No domain entered."; return; }; sublist3r -d "$domain"; else echo -e "${CYAN}Error: Sublist3r is not installed.${RESET}"; echo "Please install Sublist3r using your package manager."; fi; read -n 1 -s -r -p "Press any key to return to the menu..."; };save_results(){ clear; echo -e "${CYAN}Saving results...${RESET}"; if command -v sublist3r >/dev/null 2>&1; then read -r -p "Enter the domain to scan: " domain; [[ -z "$domain" ]] && { echo "No domain entered."; return; }; read -r -p "Enter the filename to save results (e.g., subdomains.txt): " filename; [[ -z "$filename" ]] && { echo "No filename entered."; return; }; sublist3r -d "$domain" > "$filename"; echo -e "${CYAN}Results saved to $filename.${RESET}"; else echo -e "${CYAN}Error: Sublist3r is not installed.${RESET}"; echo "Please install Sublist3r using your package manager."; fi; read -n 1 -s -r -p "Press any key to return to the menu..."; };view_results(){ clear; echo -e "${CYAN}Viewing saved results...${RESET}"; read -r -p "Enter the filename of the saved results: " filename; if [[ -f "$filename" ]]; then less "$filename"; else echo -e "${CYAN}Error: File $filename not found.${RESET}"; fi; read -n 1 -s -r -p "Press any key to return to the menu..."; };while :; do menu; read -r -p '> ' x; case "$x" in 1) discover_subdomains ;; 2) save_results ;; 3) view_results ;; q|Q) q ;; *) echo "Invalid choice. Try again."; sleep 1 ;; esac; done