39 lines
1.1 KiB
Bash
Executable File
39 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Orchestrateur de roles
|
|
source "$PROJECT_DIR/lib.sh"
|
|
enable_strict_mode
|
|
|
|
CONFIG_FILE="${CONFIG_FILE:-/etc/netbian.conf}"
|
|
[[ -f "$CONFIG_FILE" ]] || fatal "Config file $CONFIG_FILE not found. Create it via run.sh."
|
|
validate_config_file "$CONFIG_FILE"
|
|
source "$CONFIG_FILE"
|
|
[[ -n "${profile:-}" ]] || fatal "The 'profile' variable is not set in $CONFIG_FILE."
|
|
export profile
|
|
[[ -n "${lang:-}" ]] && export lang
|
|
|
|
PROFILE_FILE="$PROFILE_DIR/${profile}.sh"
|
|
[[ -f "$PROFILE_FILE" ]] || fatal "Profile definition not found: $PROFILE_FILE"
|
|
|
|
trap 'status=$?; print_execution_summary; exit $status' EXIT
|
|
|
|
declare -a ROLE_ORDER=()
|
|
source "$PROFILE_FILE"
|
|
|
|
((${#ROLE_ORDER[@]} > 0)) || fatal "No roles declared in $PROFILE_FILE"
|
|
|
|
validate_profile_definition "$PROFILE_FILE"
|
|
validate_all_roles "${ROLE_ORDER[@]}"
|
|
|
|
for role in "${ROLE_ORDER[@]}"; do
|
|
run_role "$role"
|
|
done
|
|
|
|
cat <<'EOM'
|
|
____ _
|
|
/ ___| _ _ ___ ___ ___ ___ ___ | |
|
|
\___ \| | | |/ __/ __/ _ \/ __/ __| | |
|
|
___) | |_| | (_| (_| __/\__ \__ \ |_|
|
|
|____/ \__,_|\___\___\___||___/___/ (_)
|
|
|
|
EOM
|