#!/usr/bin/env bash set -euo pipefail SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" SRC_PS1="$REPO_ROOT/ps1/ps1.sh" DST_DIR="$HOME/.config/ps1" DST_PS1="$DST_DIR/ps1.sh" MARKER_START="# >>> user ps1 (managed) >>>" MARKER_END="# <<< user ps1 (managed) <<<" mkdir -p "$DST_DIR" cp -f "$SRC_PS1" "$DST_PS1" chmod 0644 "$DST_PS1" add_source_block() { local file="$1" [[ -f "$file" ]] || touch "$file" # remove old block local tmp tmp="$(mktemp)" awk -v s="$MARKER_START" -v e="$MARKER_END" ' $0==s {inside=1; next} $0==e {inside=0; next} !inside {print} ' "$file" > "$tmp" cat "$tmp" > "$file" rm -f "$tmp" cat >> "$file" <