update.sh aktualisiert

This commit is contained in:
2025-05-23 12:43:12 +02:00
parent 43ec823dc9
commit e686497d64

View File

@@ -24,60 +24,50 @@ get_version() {
# Function to download and update only if changed # Function to download and update only if changed
update_app() { update_app() {
app_name=$1 filename=$1
app_url=$2 app_url=$2
echo "Processing $app_name..." echo "Processing $filename..."
# Create temp directory # Create temp directory
mkdir -p ./temp mkdir -p ./temp
# Download to temp file # Download to temp file
wget -q -O "./temp/${app_name}.apk.new" "$app_url" wget -q -O "./temp/${filename}.new" "$app_url"
# Check if download was successful # Check if download was successful
if [ ! -f "./temp/${app_name}.apk.new" ] || [ ! -s "./temp/${app_name}.apk.new" ]; then if [ ! -f "./temp/${filename}.new" ] || [ ! -s "./temp/${filename}.new" ]; then
echo "$app_name: Download failed, skipping..." echo "$filename: Download failed, skipping..."
rm -f "./temp/${app_name}.apk.new" rm -f "./temp/${filename}.new"
return return
fi fi
# Extract version info from the new APK # Extract version info from the new APK
new_version=$(get_version "./temp/${app_name}.apk.new") new_version=$(get_version "./temp/${filename}.new")
echo " Downloaded version: $new_version" echo " Downloaded version: $new_version"
# Check if app exists and if it's different # Check if app exists and if it's different
if [ -f "./repo/${app_name}.apk" ]; then if [ -f "./repo/${filename}" ]; then
# Extract version info from the existing APK # Extract version info from the existing APK
current_version=$(get_version "./repo/${app_name}.apk") current_version=$(get_version "./repo/${filename}")
echo " Current version: $current_version" echo " Current version: $current_version"
# Compare files (binary comparison to be absolutely sure) # Compare files (binary comparison to be absolutely sure)
if ! cmp -s "./temp/${app_name}.apk.new" "./repo/${app_name}.apk"; then if ! cmp -s "./temp/${filename}.new" "./repo/${filename}"; then
echo "$app_name: New version detected ($current_version$new_version), updating..." echo "$filename: New version detected ($current_version$new_version), updating..."
mv "./temp/${app_name}.apk.new" "./repo/${app_name}.apk" mv "./temp/${filename}.new" "./repo/${filename}"
touch -d "$(date +%Y-%m-%d)" "./repo/${app_name}.apk" touch -d "$(date +%Y-%m-%d)" "./repo/${filename}"
else else
echo "$app_name: No changes detected (version $current_version), keeping existing version" echo "$filename: No changes detected (version $current_version), keeping existing version"
rm "./temp/${app_name}.apk.new" rm "./temp/${filename}.new"
fi fi
else else
echo "$app_name: File does not exist yet, adding version $new_version..." echo "$filename: File does not exist yet, adding version $new_version..."
mv "./temp/${app_name}.apk.new" "./repo/${app_name}.apk" mv "./temp/${filename}.new" "./repo/${filename}"
touch -d "$(date +%Y-%m-%d)" "./repo/${app_name}.apk" touch -d "$(date +%Y-%m-%d)" "./repo/${filename}"
fi fi
} }
# Function to get app name from filename
get_app_name() {
filename=$1
# Remove .apk extension and convert to proper case
app_name=$(basename "$filename" .apk)
# Convert first letter to uppercase
app_name=$(echo "$app_name" | sed 's/^\(.\)/\U\1/')
echo "$app_name"
}
echo "Fetching release information from Gitea..." echo "Fetching release information from Gitea..."
# Get release information from Gitea API # Get release information from Gitea API
@@ -107,8 +97,7 @@ done
echo "$apk_urls" | while read -r url; do echo "$apk_urls" | while read -r url; do
if [ -n "$url" ]; then if [ -n "$url" ]; then
filename=$(basename "$url") filename=$(basename "$url")
app_name=$(get_app_name "$filename") update_app "$filename" "$url"
update_app "$app_name" "$url"
fi fi
done done
@@ -116,6 +105,6 @@ done
rm -rf ./temp rm -rf ./temp
echo "Updating F-Droid repository..." echo "Updating F-Droid repository..."
/root/.local/bin/fdroid update -c --allow-disabled-algorithms /root/.local/bin/fdroid update --clean --allow-disabled-algorithms
echo "Done! Repository updated with all available apps." echo "Done! Repository updated with all available apps."