#!/usr/bin/env bash set -euo pipefail REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" # shellcheck source=scripts/deploy-manifest.sh source "$REPO_ROOT/scripts/deploy-manifest.sh" echo "Installing from $REPO_ROOT..." for entry in "${DEPLOY_FILES[@]}"; do dest="$HOME/${entry##*:}" mkdir -p "$(dirname "$dest")" cp "$REPO_ROOT/${entry%%:*}" "$dest" done for entry in "${DEPLOY_EXECUTABLES[@]}"; do dest="$HOME/${entry##*:}" mkdir -p "$(dirname "$dest")" cp "$REPO_ROOT/${entry%%:*}" "$dest" chmod +x "$dest" done for entry in "${DEPLOY_DIRS[@]}"; do dest="$HOME/${entry##*:}" rm -rf "$dest" mkdir -p "$dest" cp -r "$REPO_ROOT/${entry%%:*}/." "$dest/" done # Install git hooks into the current repo checkout HOOKS_SRC="$REPO_ROOT/scripts/git-hooks" if [[ -d "$HOOKS_SRC" ]]; then for hook_file in "$HOOKS_SRC"/*; do [[ -f "$hook_file" ]] || continue hook_name="$(basename "$hook_file")" dest_hook="$REPO_ROOT/.git/hooks/$hook_name" cp "$hook_file" "$dest_hook" chmod +x "$dest_hook" done fi echo "" echo "Deployed:" for entry in "${DEPLOY_FILES[@]}" "${DEPLOY_EXECUTABLES[@]}"; do echo " ~/${entry##*:}" done for entry in "${DEPLOY_DIRS[@]}"; do echo " ~/${entry##*:}/" done