1
0
mirror of https://github.com/Prowlarr/Indexers.git synced 2026-02-15 07:25:47 +00:00

Fixed: script adding new indexers

This commit is contained in:
ServarrAdmin
2025-08-16 09:45:49 -05:00
parent e43d4b6923
commit 5d052d3bfd

View File

@@ -637,32 +637,17 @@ handle_yml_conflicts() {
log "DEBUG" "YML files to delete: [$yml_delete]"
for def in $yml_add; do
log "DEBUG" "Using & Adding Jackett's definition yml; [$def]"
# Check if the file exists in working directory OR in git index before proceeding
if [ ! -f "$def" ] && ! git ls-files --cached "$def" 2>/dev/null | grep -q "^$def$"; then
log "DEBUG" "File [$def] does not exist in working directory or git index, skipping"
continue
fi
# 1) Create a new path by replacing "src/Jackett.Common/Definitions/"
# with "definitions/$MIN_SCHEMA/".
# - In Bash parameter expansion, the syntax is:
# ${variable/search/replace}
new_def="${def/src\/Jackett.Common\/Definitions\//definitions/v$MIN_SCHEMA/}"
# 2) If the path has changed, we do a rename; otherwise, just do normal checkout
if [ "$new_def" != "$def" ]; then
# Make sure the target directory exists
mkdir -p "$(dirname "$new_def")"
# Use git mv so that Git tracks the file rename
log "INFO" "NEW INDEXER: Moving [$def] to [$new_def]"
mv "$def" "$new_def"
# Then checkout "theirs" to accept Jackett's content
git checkout --theirs "$new_def" 2>/dev/null || true
# Stage the new path
git add --force "$new_def" 2>/dev/null || true
git checkout --theirs "$new_def"
git add --force "$new_def"
git rm --f --ignore-unmatch "$def"
else
# Fallback if the path didn't actually change
git checkout --theirs "$def" 2>/dev/null || true
git add --force "$def" 2>/dev/null || true
git checkout --theirs "$def"
git add --force "$def"
fi
done
for def in $yml_delete; do
@@ -681,8 +666,9 @@ handle_new_indexers() {
yml_staged=$(git diff --cached --name-only | grep ".yml" || true)
log "DEBUG" "All staged yml files: [$yml_staged]"
added_indexers=$(git diff --cached --diff-filter=A --name-only | grep ".yml" | grep -E "v[[:digit:]]+")
log "DEBUG" "New indexers detected (A filter + v[digit]+): [$added_indexers]"
# Git's automatic directory rename may classify new files as renames (R) instead of additions (A)
added_indexers=$(git diff --cached --diff-filter=AR --name-only | grep ".yml" | grep -E "v[[:digit:]]+")
log "DEBUG" "New indexers detected (AR filter + v[digit]+): [$added_indexers]"
if [ -n "$added_indexers" ]; then
log "INFO" "New Indexers detected: [$added_indexers]"
@@ -838,8 +824,8 @@ cleanup_and_commit() {
unset indexer_remove
fi
# Recalculated Added / Modified / Removed
added_indexers=$(git diff --cached --diff-filter=A --name-only | grep ".yml" | grep -E "v[[:digit:]]+")
# Recalculated Added / Modified / Removed - include renames (R) for directory rename detection
added_indexers=$(git diff --cached --diff-filter=AR --name-only | grep ".yml" | grep -E "v[[:digit:]]+")
modified_indexers=$(git diff --cached --diff-filter=M --name-only | grep ".yml" | grep -E "v[[:digit:]]+")
removed_indexers=$(git diff --cached --diff-filter=D --name-only | grep ".yml" | grep -E "v[[:digit:]]+")
newschema_indexers=$(git diff --cached --diff-filter=A --name-only | grep ".yml" | grep -E "v$NEW_SCHEMA")