Feature migrate update script into XDG standards (#2891)

This commit is contained in:
Celestial.y
2026-01-15 08:10:36 +08:00
committed by GitHub
2 changed files with 13 additions and 11 deletions
+12 -10
View File
@@ -45,7 +45,9 @@ if which pacman &>/dev/null; then
fi
fi
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)
declare -a IGNORE_PATTERNS=()
@@ -156,7 +158,7 @@ load_ignore_patterns() {
IGNORE_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
while IFS= read -r pattern || [[ -n "$pattern" ]]; do
@@ -450,10 +452,10 @@ handle_file_conflict() {
i)
local relative_path_to_home="${home_file#$HOME/}"
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
echo "$relative_path_to_home" >>"$HOME_UPDATE_IGNORE_FILE"
log_success "Added '$relative_path_to_home' to $HOME_UPDATE_IGNORE_FILE and skipped."
echo "$relative_path_to_home" >>"$XDG_UPDATE_IGNORE_FILE"
log_success "Added '$relative_path_to_home' to $XDG_UPDATE_IGNORE_FILE and skipped."
fi
break
;;
@@ -478,10 +480,10 @@ handle_file_conflict() {
7)
local relative_path_to_home="${home_file#$HOME/}"
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
echo "$relative_path_to_home" >>"$HOME_UPDATE_IGNORE_FILE"
log_success "Added '$relative_path_to_home' to $HOME_UPDATE_IGNORE_FILE and skipped."
echo "$relative_path_to_home" >>"$XDG_UPDATE_IGNORE_FILE"
log_success "Added '$relative_path_to_home' to $XDG_UPDATE_IGNORE_FILE and skipped."
fi
break
;;
@@ -1158,11 +1160,11 @@ if [[ "$process_files" == true ]]; then
echo "- New files created: $files_created"
fi
if [[ ! -f "$HOME_UPDATE_IGNORE_FILE" && ! -f "$UPDATE_IGNORE_FILE" ]]; then
if [[ ! -f "$XDG_UPDATE_IGNORE_FILE" && ! -f "$UPDATE_IGNORE_FILE" ]]; then
echo
log_info "Tip: Create ignore files to exclude files from updates:"
echo " - Repository ignore: ${REPO_ROOT}/.updateignore"
echo " - User ignore: ~/.updateignore"
echo " - User ignore: ${XDG_UPDATE_IGNORE_FILE}"
echo
echo "Example patterns:"
echo " *.log # Ignore all .log files"
+1 -1
View File
@@ -469,7 +469,7 @@ test_shellcheck() {
return 0
fi
if shellcheck -e SC1090,SC1091,SC2148,SC2034,SC2155,SC2164 setup then
if shellcheck -e SC1090,SC1091,SC2148,SC2034,SC2155,SC2164 setup; then
log_pass "shellcheck passed"
return 0
else