#!/usr/bin/env bash #------------------------------------------------------------------------------- ## @file script_template.sh ## @brief ## @author ## @owner ## @assist ## @version 0.1.0 (TT.MM.JJJJ) ## ## @usage script_template.sh [Optionen] ## @options ## @OPTIONS@ ## @env .env neben dem Script (Vorlage: .env.example) ## @exit 0 = ok · 1 = Fehler · 2 = Aufruffehler #------------------------------------------------------------------------------- set -Eeuo pipefail # --- Bootstrap (unverändert lassen) ------------------------------------------- SCRIPT_PATH="$(readlink -f -- "${BASH_SOURCE[0]}")" SCRIPT_DIR="${SCRIPT_PATH%/*}" SCRIPT_NAME="${SCRIPT_PATH##*/}" # shellcheck source=_functions.sh source "${SCRIPT_DIR}/_functions.sh" || { echo "FEHLER: ${SCRIPT_DIR}/_functions.sh fehlt" >&2; exit 1; } # Script-eigene Optionen; -h -d -q -n -l kommen automatisch aus _functions.sh B_OPTS+=( "f|force|flag|0|vorhandene Ziele überschreiben" "o|outdir|value:DIR|out|Zielverzeichnis (relativ = zum Script)" ) b_init "$@" set -- "${ARGS[@]}" #=============================================================================== # Funktionen #=============================================================================== ## @brief Aufräumen beim Beenden (vom EXIT-Trap aufgerufen, auch bei Fehlern) ## @param $1 Exit-Code des Scripts ## @return 0 cleanup() { return 0 } ## @brief Hauptablauf ## @param $1 Ziel ## @return 0 ok, 1 Fehler main() { (( $# == 1 )) || bdie "Genau ein erwartet" 2 local target="$1" outdir outdir="$(b_abspath "$OPTION_OUTDIR")" becho "Ziel: ${target} → ${outdir}" [[ -e "$outdir" && "$OPTION_FORCE" != 1 ]] && { berror "$outdir existiert (--force zum Überschreiben)"; return 1; } brun mkdir -p -- "$outdir" return 0 } main "$@"