25 lines
812 B
Bash
Executable File
25 lines
812 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# ---------------- CONFIG ----------------
|
|
SRC_FOLDER="./home-manager" # source folder in your repo
|
|
DEST_FOLDER="$HOME/.config/home-manager" # target folder
|
|
# ----------------------------------------
|
|
|
|
# Create backup if destination exists
|
|
if [ -d "$DEST_FOLDER" ]; then
|
|
BACKUP_DIR="$DEST_FOLDER.bak.$(date +%Y%m%d%H%M%S)"
|
|
echo "Creating backup of existing configuration at $BACKUP_DIR..."
|
|
cp -r "$DEST_FOLDER" "$BACKUP_DIR"
|
|
fi
|
|
|
|
echo "Copying Home Manager configuration from '$SRC_FOLDER' to '$DEST_FOLDER'..."
|
|
mkdir -p "$DEST_FOLDER"
|
|
cp -a "$SRC_FOLDER/." "$DEST_FOLDER/"
|
|
|
|
echo "Running home-manager switch..."
|
|
nix flake update "$DEST_FOLDER"
|
|
home-manager switch --flake ~/.config/home-manager
|
|
|
|
echo "Done! Backup (if any) stored at $BACKUP_DIR"
|