1
0
mirror of https://github.com/Prowlarr/Indexers.git synced 2025-12-20 02:58:28 +00:00

New: add sparse checkout for Jackett definitions only

This commit is contained in:
ServarrAdmin
2025-08-16 14:40:26 -05:00
committed by bakerboy448
parent 6f982b1ef6
commit bd3bb95849

View File

@@ -204,15 +204,36 @@ usage() {
exit 1 exit 1
} }
configure_sparse_checkout() {
log "INFO" "Configuring sparse checkout for Jackett definitions only"
log "DEBUG" "This will significantly reduce bandwidth and disk usage"
# Enable sparse checkout
git config core.sparseCheckout true
# Create sparse checkout file for Jackett remote
mkdir -p ".git/info"
if ! grep -q "src/Jackett.Common/Definitions/" ".git/info/sparse-checkout" 2>/dev/null; then
echo "src/Jackett.Common/Definitions/*" >> ".git/info/sparse-checkout"
log "TRACE" "Added Jackett definitions path to sparse-checkout"
log "DEBUG" "Only src/Jackett.Common/Definitions/* will be checked out from Jackett"
else
log "DEBUG" "Sparse checkout already configured for Jackett definitions"
fi
}
determine_schema_version() { determine_schema_version() {
local def_file="$1" local def_file="$1"
log "DEBUG" "Testing schema version of [$def_file]" log "DEBUG" "Testing schema version of [$def_file]"
log "TRACE" "Extracting version from file path: $def_file"
check_version=$(echo "$def_file" | cut -d'/' -f2) check_version=$(echo "$def_file" | cut -d'/' -f2)
log "TRACE" "Extracted version: $check_version"
dir="definitions/$check_version" dir="definitions/$check_version"
schema="$dir/schema.json" schema="$dir/schema.json"
log "DEBUG" "Checking file against schema [$schema]" log "DEBUG" "Checking file against schema [$schema]"
log "TRACE" "Schema path resolved to: $schema"
local test_output local test_output
$PYTHON_CMD "$VALIDATION_SCRIPT" --single "$def_file" "$schema" $PYTHON_CMD "$VALIDATION_SCRIPT" --single "$def_file" "$schema"
test_output=$? test_output=$?
@@ -292,19 +313,19 @@ while getopts "frpzab:m:c:u:j:R:J:n:o:dv" opt; do
;; ;;
r) r)
prowlarr_remote_name=$OPTARG prowlarr_remote_name=$OPTARG
log "DEBUG" "prowlarr_remote_name using argument $prowlarr_remote_name" log "TRACE" "prowlarr_remote_name using argument $prowlarr_remote_name"
;; ;;
b) b)
prowlarr_target_branch=$OPTARG prowlarr_target_branch=$OPTARG
log "DEBUG" "prowlarr_target_branch using argument $prowlarr_target_branch" log "TRACE" "prowlarr_target_branch using argument $prowlarr_target_branch"
;; ;;
o) o)
prowlarr_push_remote=$OPTARG prowlarr_push_remote=$OPTARG
log "DEBUG" "prowlarr_push_remote using argument $prowlarr_push_remote" log "TRACE" "prowlarr_push_remote using argument $prowlarr_push_remote"
;; ;;
m) m)
mode_choice=$OPTARG mode_choice=$OPTARG
log "DEBUG" "mode_choice using argument $mode_choice" log "TRACE" "mode_choice using argument $mode_choice"
case "$mode_choice" in case "$mode_choice" in
normal | n | N) normal | n | N)
is_dev_exec=false is_dev_exec=false
@@ -335,27 +356,27 @@ while getopts "frpzab:m:c:u:j:R:J:n:o:dv" opt; do
;; ;;
c) c)
PROWLARR_COMMIT_TEMPLATE=$OPTARG PROWLARR_COMMIT_TEMPLATE=$OPTARG
log "DEBUG" "PROWLARR_COMMIT_TEMPLATE using argument $PROWLARR_COMMIT_TEMPLATE" log "TRACE" "PROWLARR_COMMIT_TEMPLATE using argument $PROWLARR_COMMIT_TEMPLATE"
;; ;;
u) u)
PROWLARR_REPO_URL=$OPTARG PROWLARR_REPO_URL=$OPTARG
log "DEBUG" "PROWLARR_REPO_URL using argument $PROWLARR_REPO_URL" log "TRACE" "PROWLARR_REPO_URL using argument $PROWLARR_REPO_URL"
;; ;;
j) j)
JACKETT_REPO_URL=$OPTARG JACKETT_REPO_URL=$OPTARG
log "DEBUG" "JACKETT_REPO_URL using argument $JACKETT_REPO_URL" log "TRACE" "JACKETT_REPO_URL using argument $JACKETT_REPO_URL"
;; ;;
R) R)
PROWLARR_RELEASE_BRANCH=$OPTARG PROWLARR_RELEASE_BRANCH=$OPTARG
log "DEBUG" "PROWLARR_RELEASE_BRANCH using argument $PROWLARR_RELEASE_BRANCH" log "TRACE" "PROWLARR_RELEASE_BRANCH using argument $PROWLARR_RELEASE_BRANCH"
;; ;;
J) J)
JACKETT_BRANCH=$OPTARG JACKETT_BRANCH=$OPTARG
log "DEBUG" "JACKETT_BRANCH using argument $JACKETT_BRANCH" log "TRACE" "JACKETT_BRANCH using argument $JACKETT_BRANCH"
;; ;;
n) n)
JACKETT_REMOTE_NAME=$OPTARG JACKETT_REMOTE_NAME=$OPTARG
log "DEBUG" "JACKETT_REMOTE_NAME using argument $JACKETT_REMOTE_NAME" log "TRACE" "JACKETT_REMOTE_NAME using argument $JACKETT_REMOTE_NAME"
;; ;;
z) z)
# No Arg # No Arg
@@ -395,7 +416,14 @@ configure_git() {
fi fi
if [ -z "$jackett_remote_exists" ]; then if [ -z "$jackett_remote_exists" ]; then
configure_sparse_checkout
git remote add "$JACKETT_REMOTE_NAME" "$JACKETT_REPO_URL" git remote add "$JACKETT_REMOTE_NAME" "$JACKETT_REPO_URL"
else
# Check if sparse checkout is already configured
if [ "$(git config core.sparseCheckout)" != "true" ]; then
log "DEBUG" "Jackett remote exists but sparse checkout not configured"
configure_sparse_checkout
fi
fi fi
if [ "$prowlarr_push_remote" != "$prowlarr_remote_name" ] && [ -z "$prowlarr_push_remote_exists" ]; then if [ "$prowlarr_push_remote" != "$prowlarr_remote_name" ] && [ -z "$prowlarr_push_remote_exists" ]; then