83 lines
2.8 KiB
Bash
Executable file
83 lines
2.8 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
#|---/ /+--------------------------------+---/ /|#
|
|
#|--/ /-| Script to restore hyde configs |--/ /-|#
|
|
#|-/ /--| Prasanth Rangan |-/ /--|#
|
|
#|/ /---+--------------------------------+/ /---|#
|
|
|
|
scrDir=$(dirname "$(realpath "$0")")
|
|
source "${scrDir}/global_fn.sh"
|
|
if [ $? -ne 0 ]; then
|
|
echo "Error: unable to source global_fn.sh..."
|
|
exit 1
|
|
fi
|
|
|
|
CfgLst="${1:-"${scrDir}/restore_cfg.lst"}"
|
|
CfgDir="${2:-${cloneDir}/Configs}"
|
|
ThemeOverride="${3:-}"
|
|
|
|
if [ ! -f "${CfgLst}" ] || [ ! -d "${CfgDir}" ]; then
|
|
echo "ERROR: '${CfgLst}' or '${CfgDir}' does not exist..."
|
|
exit 1
|
|
fi
|
|
|
|
BkpDir="${HOME}/.config/cfg_backups/$(date +'%y%m%d_%Hh%Mm%Ss')${ThemeOverride}"
|
|
|
|
if [ -d "${BkpDir}" ]; then
|
|
echo "ERROR: ${BkpDir} exists!"
|
|
exit 1
|
|
else
|
|
mkdir -p "${BkpDir}"
|
|
fi
|
|
|
|
cat "${CfgLst}" | while read lst; do
|
|
|
|
ovrWrte=$(echo "${lst}" | awk -F '|' '{print $1}')
|
|
bkpFlag=$(echo "${lst}" | awk -F '|' '{print $2}')
|
|
pth=$(echo "${lst}" | awk -F '|' '{print $3}')
|
|
pth=$(eval echo "${pth}")
|
|
cfg=$(echo "${lst}" | awk -F '|' '{print $4}')
|
|
pkg=$(echo "${lst}" | awk -F '|' '{print $5}')
|
|
|
|
while read -r pkg_chk; do
|
|
if ! pkg_installed "${pkg_chk}"; then
|
|
echo -e "\033[0;33m[skip]\033[0m ${pth}/${cfg} as dependency ${pkg_chk} is not installed..."
|
|
continue 2
|
|
fi
|
|
done < <(echo "${pkg}" | xargs -n 1)
|
|
|
|
echo "${cfg}" | xargs -n 1 | while read -r cfg_chk; do
|
|
if [[ -z "${pth}" ]]; then continue; fi
|
|
tgt=$(echo "${pth}" | sed "s+^${HOME}++g")
|
|
|
|
if ( [ -d "${pth}/${cfg_chk}" ] || [ -f "${pth}/${cfg_chk}" ] ) && [ "${bkpFlag}" == "Y" ]; then
|
|
|
|
if [ ! -d "${BkpDir}${tgt}" ]; then
|
|
mkdir -p "${BkpDir}${tgt}"
|
|
fi
|
|
|
|
[ "${ovrWrte}" == "Y" ] && mv "${pth}/${cfg_chk}" "${BkpDir}${tgt}" || cp -r "${pth}/${cfg_chk}" "${BkpDir}${tgt}"
|
|
echo -e "\033[0;34m[backup]\033[0m ${pth}/${cfg_chk} --> ${BkpDir}${tgt}..."
|
|
fi
|
|
|
|
if [ ! -d "${pth}" ]; then
|
|
mkdir -p "${pth}"
|
|
fi
|
|
|
|
if [ ! -f "${pth}/${cfg_chk}" ]; then
|
|
cp -r "${CfgDir}${tgt}/${cfg_chk}" "${pth}"
|
|
echo -e "\033[0;32m[restore]\033[0m ${pth} <-- ${CfgDir}${tgt}/${cfg_chk}..."
|
|
elif [ "${ovrWrte}" == "Y" ]; then
|
|
cp -r "${CfgDir}$tgt/${cfg_chk}" "${pth}"
|
|
echo -e "\033[0;33m[overwrite]\033[0m ${pth} <-- ${CfgDir}${tgt}/${cfg_chk}..."
|
|
else
|
|
echo -e "\033[0;33m[preserve]\033[0m Skipping ${pth}/${cfg_chk} to preserve user setting..."
|
|
fi
|
|
done
|
|
|
|
done
|
|
|
|
if [ -z "${ThemeOverride}" ]; then
|
|
if nvidia_detect && [ $(grep '^source = ~/.config/hypr/nvidia.conf' "${HOME}/.config/hypr/hyprland.conf" | wc -l) -eq 0 ]; then
|
|
echo -e 'source = ~/.config/hypr/nvidia.conf # auto sourced vars for nvidia\n' >> "${HOME}/.config/hypr/hyprland.conf"
|
|
fi
|
|
fi
|