#!/bin/bash

# This script deploys ~/.local/share/omarchy/config/X/Y/Z -> ~/.config/X/Y/Z
config_file=$1

if [[ -z "$config_file" ]]; then
  cat <<USAGE
  Usage: $0 [config_file]

  Must provide a file path from the .config directory to be refreshed.
  To copy ~/.local/share/omarchy/config/hypr/hyprlock.conf to ~/.config/hypr/hyprlock.conf
    
    $0 hypr/hyprlock.conf     
USAGE
  exit 1
fi

# Backup the destination file (with timestamp) to avoid clobbering (Ex: hyprlock.conf.bak.1753817951)
user_config_file="${HOME}/.config/$config_file"
default_config_file="${HOME}/.local/share/omarchy/config/$config_file"
backup_config_file="$user_config_file.bak.$(date +%s)"

# Create preliminary backup
cp -f "$user_config_file" "$backup_config_file" 2>/dev/null

# Replace config with new default
cp -f "$default_config_file" "$user_config_file" 2>/dev/null

# Compare and delete/inform accordingly
if cmp -s "$user_config_file" "$backup_config_file"; then
  rm "$backup_config_file"
else
  echo -e "\e[31mReplaced $user_config_file with new Omarchy default.\nSaved backup as ${backup_config_file}.\n\n\e[32mChanges:\e[0m"
  diff "$user_config_file" "$backup_config_file"
fi
