test.sh
· 843 B · Bash
Eredeti
#!/usr/bin/env bash
set -euo pipefail
BOLD=$'\033[1m'
DIM=$'\033[2m'
RESET=$'\033[0m'
RED=$'\033[0;31m'
GREEN=$'\033[0;32m'
YELLOW=$'\033[0;33m'
BLUE=$'\033[0;34m'
CYAN=$'\033[0;36m'
summary_box() {
local width=60
local border
border=$(printf '─%.0s' $(seq 1 $width))
echo ""
echo " ${CYAN}${border}${RESET}"
while [ $# -gt 0 ]; do
printf " ${CYAN}│${RESET} %-28s %s\n" "$1" "$2"
shift 2
done
echo " ${CYAN}${border}${RESET}"
echo ""
}
ask_password_visible() {
local label=$1
local default_password="$(openssl rand -base64 12)"
local value
printf " ${CYAN}?${RESET} $label [%s]: " "$default_password" >&2
read -r value </dev/tty
echo "${value:-$default_password}"
}
admin_pass=$(ask_password_visible "Password (mixed case, digits, min 12 chars)")
summary_box "Password:" "${admin_pass}"
| 1 | #!/usr/bin/env bash |
| 2 | set -euo pipefail |
| 3 | |
| 4 | BOLD=$'\033[1m' |
| 5 | DIM=$'\033[2m' |
| 6 | RESET=$'\033[0m' |
| 7 | RED=$'\033[0;31m' |
| 8 | GREEN=$'\033[0;32m' |
| 9 | YELLOW=$'\033[0;33m' |
| 10 | BLUE=$'\033[0;34m' |
| 11 | CYAN=$'\033[0;36m' |
| 12 | |
| 13 | summary_box() { |
| 14 | local width=60 |
| 15 | local border |
| 16 | border=$(printf '─%.0s' $(seq 1 $width)) |
| 17 | echo "" |
| 18 | echo " ${CYAN}${border}${RESET}" |
| 19 | while [ $# -gt 0 ]; do |
| 20 | printf " ${CYAN}│${RESET} %-28s %s\n" "$1" "$2" |
| 21 | shift 2 |
| 22 | done |
| 23 | echo " ${CYAN}${border}${RESET}" |
| 24 | echo "" |
| 25 | } |
| 26 | |
| 27 | ask_password_visible() { |
| 28 | local label=$1 |
| 29 | local default_password="$(openssl rand -base64 12)" |
| 30 | local value |
| 31 | |
| 32 | printf " ${CYAN}?${RESET} $label [%s]: " "$default_password" >&2 |
| 33 | read -r value </dev/tty |
| 34 | |
| 35 | echo "${value:-$default_password}" |
| 36 | } |
| 37 | |
| 38 | admin_pass=$(ask_password_visible "Password (mixed case, digits, min 12 chars)") |
| 39 | |
| 40 | summary_box "Password:" "${admin_pass}" |
| 41 | |
| 42 |