From eafaf78c12581c8dbc40c170ba3321de20bd6a50 Mon Sep 17 00:00:00 2001 From: clsty Date: Tue, 7 Oct 2025 06:59:01 +0800 Subject: [PATCH] Add warning_rsync() for #2133 --- scriptdata/step/3.install-files.sh | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/scriptdata/step/3.install-files.sh b/scriptdata/step/3.install-files.sh index 84682d9b9..5a1615a1e 100644 --- a/scriptdata/step/3.install-files.sh +++ b/scriptdata/step/3.install-files.sh @@ -12,6 +12,12 @@ function backup_configs(){ rsync -av --progress "$HOME/.local/" "$backup_dir/local_backup/" } +function warning_rsync(){ + printf "${STY_YELLOW}" + printf "The commands using rsync will overwrite the destination when it exists already.\n" + printf "${STY_RESET}" +} + function ask_backup_configs(){ printf "${STY_RED}" printf "Would you like to create a backup for \"$XDG_CONFIG_HOME\" and \"$HOME/.local/\" folders?\n[y/N]: " @@ -50,8 +56,8 @@ case $SKIP_MISCCONF in for i in $(find .config/ -mindepth 1 -maxdepth 1 ! -name 'fish' ! -name 'hypr' -exec basename {} \;); do # i=".config/$i" echo "[$0]: Found target: .config/$i" - if [ -d ".config/$i" ];then v rsync -av --delete ".config/$i/" "$XDG_CONFIG_HOME/$i/" - elif [ -f ".config/$i" ];then v rsync -av ".config/$i" "$XDG_CONFIG_HOME/$i" + if [ -d ".config/$i" ];then warning_rsync; v rsync -av --delete ".config/$i/" "$XDG_CONFIG_HOME/$i/" + elif [ -f ".config/$i" ];then warning_rsync; v rsync -av ".config/$i" "$XDG_CONFIG_HOME/$i" fi done ;; @@ -60,7 +66,7 @@ esac case $SKIP_FISH in true) sleep 0;; *) - v rsync -av --delete .config/fish/ "$XDG_CONFIG_HOME"/fish/ + warning_rsync; v rsync -av --delete .config/fish/ "$XDG_CONFIG_HOME"/fish/ ;; esac @@ -73,7 +79,7 @@ arg_excludes+=(--exclude '/hyprland.conf') case $SKIP_HYPRLAND in true) sleep 0;; *) - v rsync -av --delete "${arg_excludes[@]}" .config/hypr/ "$XDG_CONFIG_HOME"/hypr/ + warning_rsync; v rsync -av --delete "${arg_excludes[@]}" .config/hypr/ "$XDG_CONFIG_HOME"/hypr/ t="$XDG_CONFIG_HOME/hypr/hyprland.conf" if [ -f $t ];then echo -e "${STY_BLUE}[$0]: \"$t\" already exists.${STY_RESET}" @@ -110,7 +116,7 @@ case $SKIP_HYPRLAND in echo -e "${STY_BLUE}[$0]: \"$t\" already exists, will not do anything.${STY_RESET}" else echo -e "${STY_YELLOW}[$0]: \"$t\" does not exist yet.${STY_RESET}" - v rsync -av --delete .config/hypr/custom/ $t/ + warning_rsync; v rsync -av --delete .config/hypr/custom/ $t/ fi ;; esac @@ -120,8 +126,8 @@ declare -a arg_excludes=() # some foldes (eg. .local/bin) should be processed separately to avoid `--delete' for rsync, # since the files here come from different places, not only about one program. # v rsync -av ".local/bin/" "$XDG_BIN_HOME" # No longer needed since scripts are no longer in ~/.local/bin -v rsync -av ".local/share/icons/" "${XDG_DATA_HOME:-$HOME/.local/share}"/icons/ -v rsync -av ".local/share/konsole/" "${XDG_DATA_HOME:-$HOME/.local/share}"/konsole/ +warning_rsync; v rsync -av ".local/share/icons/" "${XDG_DATA_HOME:-$HOME/.local/share}"/icons/ +warning_rsync; v rsync -av ".local/share/konsole/" "${XDG_DATA_HOME:-$HOME/.local/share}"/konsole/ # Prevent hyprland from not fully loaded sleep 1