forked from Shinonome/dots-hyprland
Improve backup functions; Minor fix for checkdeps
This commit is contained in:
@@ -1,6 +1,9 @@
|
|||||||
#!/usr/bin/env bash
|
# This script is meant to be sourced.
|
||||||
|
# It's not for directly running.
|
||||||
|
|
||||||
|
# shellcheck shell=bash
|
||||||
|
|
||||||
# Check whether pkgs exist in AUR or repos of Arch.
|
# Check whether pkgs exist in AUR or repos of Arch.
|
||||||
#
|
|
||||||
# Do NOT abuse this since it consumes extra bandwidth from AUR server.
|
# Do NOT abuse this since it consumes extra bandwidth from AUR server.
|
||||||
|
|
||||||
pkglistfile=$(mktemp)
|
pkglistfile=$(mktemp)
|
||||||
|
|||||||
@@ -24,32 +24,33 @@ function warning_rsync_normal(){
|
|||||||
printf "${STY_RST}"
|
printf "${STY_RST}"
|
||||||
}
|
}
|
||||||
|
|
||||||
function backup_configs(){
|
|
||||||
backup_clashing_targets dots/.config $XDG_CONFIG_HOME "${BACKUP_DIR}/.config"
|
|
||||||
backup_clashing_targets dots/.local/share $XDG_DATA_HOME "${BACKUP_DIR}/.local/share"
|
|
||||||
printf "${STY_BLUE}Backup into \"${BACKUP_DIR}\" finished.${STY_RST}\n"
|
|
||||||
}
|
|
||||||
|
|
||||||
function ask_backup_configs(){
|
|
||||||
showfun backup_clashing_targets
|
|
||||||
printf "${STY_RED}"
|
|
||||||
printf "Would you like to backup clashing dirs/files under \"$XDG_CONFIG_HOME\" and \"$XDG_DATA_HOME\" to \"$BACKUP_DIR\"?"
|
|
||||||
printf "${STY_RST}"
|
|
||||||
while true;do
|
|
||||||
echo " y = Yes, backup"
|
|
||||||
echo " n/s = No, skip to next"
|
|
||||||
local p; read -p "====> " p
|
|
||||||
case $p in
|
|
||||||
[yY]) echo -e "${STY_BLUE}OK, doing backup...${STY_RST}" ;local backup=true;break ;;
|
|
||||||
[nNsS]) echo -e "${STY_BLUE}Alright, skipping...${STY_RST}" ;local backup=false;break ;;
|
|
||||||
*) echo -e "${STY_RED}Please enter [y/n].${STY_RST}";;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
if $backup;then backup_configs;fi
|
|
||||||
}
|
|
||||||
function auto_backup_configs(){
|
function auto_backup_configs(){
|
||||||
# Backup when $BACKUP_DIR does not exist
|
local backup=false
|
||||||
if [[ ! -d "$BACKUP_DIR" ]]; then backup_configs;fi
|
case $ask in
|
||||||
|
false) if [[ ! -d "$BACKUP_DIR" ]]; then local backup=true;fi;;
|
||||||
|
*)
|
||||||
|
printf "${STY_RED}"
|
||||||
|
printf "Would you like to backup clashing dirs/files to \"$BACKUP_DIR\"?"
|
||||||
|
printf "${STY_RST}"
|
||||||
|
while true;do
|
||||||
|
echo " y = Yes, backup"
|
||||||
|
echo " n/s = No, skip to next"
|
||||||
|
local p; read -p "====> " p
|
||||||
|
case $p in
|
||||||
|
[yY]) echo -e "${STY_BLUE}OK, doing backup...${STY_RST}"
|
||||||
|
local backup=true;break ;;
|
||||||
|
[nNsS]) echo -e "${STY_BLUE}Alright, skipping...${STY_RST}"
|
||||||
|
local backup=false;break ;;
|
||||||
|
*) echo -e "${STY_RED}Please enter [y/n].${STY_RST}";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
if $backup;then
|
||||||
|
backup_clashing_targets dots/.config $XDG_CONFIG_HOME "${BACKUP_DIR}/.config"
|
||||||
|
backup_clashing_targets dots/.local/share $XDG_DATA_HOME "${BACKUP_DIR}/.local/share"
|
||||||
|
printf "${STY_BLUE}Backup into \"${BACKUP_DIR}\" finished.${STY_RST}\n"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
#####################################################################################
|
#####################################################################################
|
||||||
@@ -59,12 +60,8 @@ v auto_get_git_submodule
|
|||||||
# In case some dirs does not exists
|
# In case some dirs does not exists
|
||||||
v mkdir -p $XDG_BIN_HOME $XDG_CACHE_HOME $XDG_CONFIG_HOME $XDG_DATA_HOME/icons
|
v mkdir -p $XDG_BIN_HOME $XDG_CACHE_HOME $XDG_CONFIG_HOME $XDG_DATA_HOME/icons
|
||||||
|
|
||||||
if [[ ! "${SKIP_BACKUP}" == true ]]; then
|
# Backup
|
||||||
case $ask in
|
if [[ ! "${SKIP_BACKUP}" == true ]]; then auto_backup_configs; fi
|
||||||
false) auto_backup_configs ;;
|
|
||||||
*) ask_backup_configs ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Run user preference wizard
|
# Run user preference wizard
|
||||||
case $ask in
|
case $ask in
|
||||||
|
|||||||
@@ -18,32 +18,33 @@ function warning_rsync_normal(){
|
|||||||
printf "${STY_RST}"
|
printf "${STY_RST}"
|
||||||
}
|
}
|
||||||
|
|
||||||
function backup_configs(){
|
|
||||||
backup_clashing_targets dots/.config $XDG_CONFIG_HOME "${BACKUP_DIR}/.config"
|
|
||||||
backup_clashing_targets dots/.local/share $XDG_DATA_HOME "${BACKUP_DIR}/.local/share"
|
|
||||||
printf "${STY_BLUE}Backup into \"${BACKUP_DIR}\" finished.${STY_RST}\n"
|
|
||||||
}
|
|
||||||
|
|
||||||
function ask_backup_configs(){
|
|
||||||
showfun backup_clashing_targets
|
|
||||||
printf "${STY_RED}"
|
|
||||||
printf "Would you like to backup clashing dirs/files under \"$XDG_CONFIG_HOME\" and \"$XDG_DATA_HOME\" to \"$BACKUP_DIR\"?\n"
|
|
||||||
printf "${STY_RST}"
|
|
||||||
while true;do
|
|
||||||
echo " y = Yes, backup"
|
|
||||||
echo " n/s = No, skip to next"
|
|
||||||
local p; read -p "====> " p
|
|
||||||
case $p in
|
|
||||||
[yY]) echo -e "${STY_BLUE}OK, doing backup...${STY_RST}" ;local backup=true;break ;;
|
|
||||||
[nNsS]) echo -e "${STY_BLUE}Alright, skipping...${STY_RST}" ;local backup=false;break ;;
|
|
||||||
*) echo -e "${STY_RED}Please enter [y/n].${STY_RST}";;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
if $backup;then backup_configs;fi
|
|
||||||
}
|
|
||||||
function auto_backup_configs(){
|
function auto_backup_configs(){
|
||||||
# Backup when $BACKUP_DIR does not exist
|
local backup=false
|
||||||
if [[ ! -d "$BACKUP_DIR" ]]; then backup_configs;fi
|
case $ask in
|
||||||
|
false) if [[ ! -d "$BACKUP_DIR" ]]; then local backup=true;fi;;
|
||||||
|
*)
|
||||||
|
printf "${STY_RED}"
|
||||||
|
printf "Would you like to backup clashing dirs/files to \"$BACKUP_DIR\"?"
|
||||||
|
printf "${STY_RST}"
|
||||||
|
while true;do
|
||||||
|
echo " y = Yes, backup"
|
||||||
|
echo " n/s = No, skip to next"
|
||||||
|
local p; read -p "====> " p
|
||||||
|
case $p in
|
||||||
|
[yY]) echo -e "${STY_BLUE}OK, doing backup...${STY_RST}"
|
||||||
|
local backup=true;break ;;
|
||||||
|
[nNsS]) echo -e "${STY_BLUE}Alright, skipping...${STY_RST}"
|
||||||
|
local backup=false;break ;;
|
||||||
|
*) echo -e "${STY_RED}Please enter [y/n].${STY_RST}";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
if $backup;then
|
||||||
|
backup_clashing_targets dots/.config $XDG_CONFIG_HOME "${BACKUP_DIR}/.config"
|
||||||
|
backup_clashing_targets dots/.local/share $XDG_DATA_HOME "${BACKUP_DIR}/.local/share"
|
||||||
|
printf "${STY_BLUE}Backup into \"${BACKUP_DIR}\" finished.${STY_RST}\n"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
#####################################################################################
|
#####################################################################################
|
||||||
@@ -53,12 +54,8 @@ v auto_get_git_submodule
|
|||||||
# In case some dirs does not exists
|
# In case some dirs does not exists
|
||||||
v mkdir -p $XDG_BIN_HOME $XDG_CACHE_HOME $XDG_CONFIG_HOME $XDG_DATA_HOME/icons
|
v mkdir -p $XDG_BIN_HOME $XDG_CACHE_HOME $XDG_CONFIG_HOME $XDG_DATA_HOME/icons
|
||||||
|
|
||||||
if [[ ! "${SKIP_BACKUP}" == true ]]; then
|
# Backup
|
||||||
case $ask in
|
if [[ ! "${SKIP_BACKUP}" == true ]]; then auto_backup_configs; fi
|
||||||
false) auto_backup_configs ;;
|
|
||||||
*) ask_backup_configs ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# TODO: A better method for users to choose their customization,
|
# TODO: A better method for users to choose their customization,
|
||||||
# for example some users may prefer ZSH over FISH, and foot over kitty.
|
# for example some users may prefer ZSH over FISH, and foot over kitty.
|
||||||
|
|||||||
Reference in New Issue
Block a user