forked from Shinonome/dots-hyprland
migrate to XDG standards for update ignore file
This commit is contained in:
@@ -45,7 +45,9 @@ if which pacman &>/dev/null; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
UPDATE_IGNORE_FILE="${REPO_ROOT}/.updateignore"
|
UPDATE_IGNORE_FILE="${REPO_ROOT}/.updateignore"
|
||||||
HOME_UPDATE_IGNORE_FILE="${HOME}/.updateignore"
|
XDG_UPDATE_IGNORE_FILE="${XDG_CONFIG_HOME:-$HOME/.config}/illogical-impulse/updateignore"
|
||||||
|
#TODO: remove in future and add script to migrate to XDG path
|
||||||
|
HOME_UPDATE_IGNORE_FILE="${HOME}/.updateignore" # Legacy support
|
||||||
|
|
||||||
# Global arrays for cached ignore patterns (performance optimization)
|
# Global arrays for cached ignore patterns (performance optimization)
|
||||||
declare -a IGNORE_PATTERNS=()
|
declare -a IGNORE_PATTERNS=()
|
||||||
@@ -156,7 +158,7 @@ load_ignore_patterns() {
|
|||||||
IGNORE_PATTERNS=()
|
IGNORE_PATTERNS=()
|
||||||
IGNORE_SUBSTRING_PATTERNS=()
|
IGNORE_SUBSTRING_PATTERNS=()
|
||||||
|
|
||||||
for ignore_file in "$UPDATE_IGNORE_FILE" "$HOME_UPDATE_IGNORE_FILE"; do
|
for ignore_file in "$UPDATE_IGNORE_FILE" "$XDG_UPDATE_IGNORE_FILE" "$HOME_UPDATE_IGNORE_FILE"; do
|
||||||
[[ ! -f "$ignore_file" ]] && continue
|
[[ ! -f "$ignore_file" ]] && continue
|
||||||
|
|
||||||
while IFS= read -r pattern || [[ -n "$pattern" ]]; do
|
while IFS= read -r pattern || [[ -n "$pattern" ]]; do
|
||||||
@@ -450,10 +452,10 @@ handle_file_conflict() {
|
|||||||
i)
|
i)
|
||||||
local relative_path_to_home="${home_file#$HOME/}"
|
local relative_path_to_home="${home_file#$HOME/}"
|
||||||
if [[ "$DRY_RUN" == true ]]; then
|
if [[ "$DRY_RUN" == true ]]; then
|
||||||
log_info "[DRY-RUN] Would add '$relative_path_to_home' to $HOME_UPDATE_IGNORE_FILE"
|
log_info "[DRY-RUN] Would add '$relative_path_to_home' to $XDG_UPDATE_IGNORE_FILE"
|
||||||
else
|
else
|
||||||
echo "$relative_path_to_home" >>"$HOME_UPDATE_IGNORE_FILE"
|
echo "$relative_path_to_home" >>"$XDG_UPDATE_IGNORE_FILE"
|
||||||
log_success "Added '$relative_path_to_home' to $HOME_UPDATE_IGNORE_FILE and skipped."
|
log_success "Added '$relative_path_to_home' to $XDG_UPDATE_IGNORE_FILE and skipped."
|
||||||
fi
|
fi
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
@@ -478,10 +480,10 @@ handle_file_conflict() {
|
|||||||
7)
|
7)
|
||||||
local relative_path_to_home="${home_file#$HOME/}"
|
local relative_path_to_home="${home_file#$HOME/}"
|
||||||
if [[ "$DRY_RUN" == true ]]; then
|
if [[ "$DRY_RUN" == true ]]; then
|
||||||
log_info "[DRY-RUN] Would add '$relative_path_to_home' to $HOME_UPDATE_IGNORE_FILE"
|
log_info "[DRY-RUN] Would add '$relative_path_to_home' to $XDG_UPDATE_IGNORE_FILE"
|
||||||
else
|
else
|
||||||
echo "$relative_path_to_home" >>"$HOME_UPDATE_IGNORE_FILE"
|
echo "$relative_path_to_home" >>"$XDG_UPDATE_IGNORE_FILE"
|
||||||
log_success "Added '$relative_path_to_home' to $HOME_UPDATE_IGNORE_FILE and skipped."
|
log_success "Added '$relative_path_to_home' to $XDG_UPDATE_IGNORE_FILE and skipped."
|
||||||
fi
|
fi
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
@@ -1158,11 +1160,11 @@ if [[ "$process_files" == true ]]; then
|
|||||||
echo "- New files created: $files_created"
|
echo "- New files created: $files_created"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ! -f "$HOME_UPDATE_IGNORE_FILE" && ! -f "$UPDATE_IGNORE_FILE" ]]; then
|
if [[ ! -f "$XDG_UPDATE_IGNORE_FILE" && ! -f "$UPDATE_IGNORE_FILE" ]]; then
|
||||||
echo
|
echo
|
||||||
log_info "Tip: Create ignore files to exclude files from updates:"
|
log_info "Tip: Create ignore files to exclude files from updates:"
|
||||||
echo " - Repository ignore: ${REPO_ROOT}/.updateignore"
|
echo " - Repository ignore: ${REPO_ROOT}/.updateignore"
|
||||||
echo " - User ignore: ~/.updateignore"
|
echo " - User ignore: ${XDG_UPDATE_IGNORE_FILE}"
|
||||||
echo
|
echo
|
||||||
echo "Example patterns:"
|
echo "Example patterns:"
|
||||||
echo " *.log # Ignore all .log files"
|
echo " *.log # Ignore all .log files"
|
||||||
|
|||||||
Reference in New Issue
Block a user