From bf5ebef4818442c21f7a21ecb94ac4a60af7c952 Mon Sep 17 00:00:00 2001
From: Deve <deveee@gmail.com>
Date: Sat, 22 Feb 2020 23:57:16 +0100
Subject: [PATCH] Allow to set input/output dir for generate assets script

---
 android/generate_assets.sh | 72 ++++++++++++++++++++++----------------
 1 file changed, 41 insertions(+), 31 deletions(-)

diff --git a/android/generate_assets.sh b/android/generate_assets.sh
index d015e9b95..ffea3cd01 100755
--- a/android/generate_assets.sh
+++ b/android/generate_assets.sh
@@ -42,9 +42,11 @@ export DECREASE_QUALITY_DEFAULT=1
 export CONVERT_TO_JPG_DEFAULT=1
 export ONLY_ASSETS_DEFAULT=0
 
-export ASSETS_PATHS="../data                    \
-                     ../../stk-assets           \
-                     ../../supertuxkart-assets"
+export ASSETS_PATHS_DEFAULT="../data                    \
+                             ../../stk-assets           \
+                             ../../supertuxkart-assets"
+                             
+export OUTPUT_PATH_DEFAULT="assets"
 
 export ASSETS_DIRS="library models music sfx textures"
 
@@ -108,7 +110,15 @@ if [ -z "$CONVERT_TO_JPG" ]; then
 fi
 
 if [ -z "$ONLY_ASSETS" ]; then
-    export ONLY_ASSETS=$ONLY_ASSETS_DEFAULT
+    export ONLY_ASSETS="$ONLY_ASSETS_DEFAULT"
+fi
+
+if [ -z "$ASSETS_PATHS" ]; then
+    export ASSETS_PATHS="$ASSETS_PATHS_DEFAULT"
+fi
+
+if [ -z "$OUTPUT_PATH" ]; then
+    export OUTPUT_PATH="$OUTPUT_PATH_DEFAULT"
 fi
 
 # Find assets path
@@ -133,13 +143,13 @@ fi
 
 # Clear previous assets directory
 echo "Clear previous assets directory"
-rm -rf assets
+rm -rf "$OUTPUT_PATH"
 
 
 # Copy all assets
 echo "Copy all assets"
 
-mkdir -p assets/data
+mkdir -p "$OUTPUT_PATH/data"
 
 for DIR in `ls $ASSETS_PATH`; do
     CAN_BE_COPIED=0
@@ -161,7 +171,7 @@ for DIR in `ls $ASSETS_PATH`; do
     done;
 
     if [ $CAN_BE_COPIED -gt 0 ]; then
-        cp -a "$ASSETS_PATH/$DIR" assets/data/
+        cp -a "$ASSETS_PATH/$DIR" "$OUTPUT_PATH/data/"
     fi
 done;
 
@@ -169,7 +179,7 @@ done;
 # Copy selected tracks
 echo "Copy selected tracks"
 
-mkdir -p assets/data/tracks
+mkdir -p "$OUTPUT_PATH/data/tracks"
 
 for DIR in `ls $ASSETS_PATH/tracks`; do
     CAN_BE_COPIED=0
@@ -186,7 +196,7 @@ for DIR in `ls $ASSETS_PATH/tracks`; do
     fi
 
     if [ $CAN_BE_COPIED -gt 0 ]; then
-        cp -a "$ASSETS_PATH/tracks/$DIR" assets/data/tracks/
+        cp -a "$ASSETS_PATH/tracks/$DIR" "$OUTPUT_PATH/data/tracks/"
     fi
 done
 
@@ -194,7 +204,7 @@ done
 # Copy selected karts
 echo "Copy selected karts"
 
-mkdir -p assets/data/karts
+mkdir -p "$OUTPUT_PATH/data/karts"
 
 for DIR in `ls $ASSETS_PATH/karts`; do
     CAN_BE_COPIED=0
@@ -211,7 +221,7 @@ for DIR in `ls $ASSETS_PATH/karts`; do
     fi
 
     if [ $CAN_BE_COPIED -gt 0 ]; then
-        cp -a "$ASSETS_PATH/karts/$DIR" assets/data/karts/
+        cp -a "$ASSETS_PATH/karts/$DIR" "$OUTPUT_PATH/data/karts/"
     fi
 done
 
@@ -357,7 +367,7 @@ convert_to_jpg()
     BLACKLISTED=0
     
     for BLACKLIST_FILE in $CONVERT_TO_JPG_BLACKLIST; do
-        if [ "$FILE" = "assets/$BLACKLIST_FILE" ]; then
+        if [ "$FILE" = "$OUTPUT_PATH/$BLACKLIST_FILE" ]; then
             BLACKLISTED=1
             break
         fi
@@ -615,23 +625,23 @@ convert_to_jpg_update_xml()
 
 
 if [ $DECREASE_QUALITY -gt 0 ]; then
-    find assets/data -iname "*.png" | while read f; do convert_image "$f" "png"; done
-    find assets/data -iname "*.jpg" | while read f; do convert_image "$f" "jpg"; done
-    find assets/data -iname "*.ogg" | while read f; do convert_sound "$f"; done
+    find "$OUTPUT_PATH/data" -iname "*.png" | while read f; do convert_image "$f" "png"; done
+    find "$OUTPUT_PATH/data" -iname "*.jpg" | while read f; do convert_image "$f" "jpg"; done
+    find "$OUTPUT_PATH/data" -iname "*.ogg" | while read f; do convert_sound "$f"; done
 fi
 
 
 if [ $CONVERT_TO_JPG -gt 0 ]; then
     rm -f "./converted_textures"
     
-    find assets/data -not -path "assets/data/textures/*" \
-                     -not -path "assets/data/karts/*"    \
-                     -iname "*.png" | while read f; do convert_to_jpg "$f"; done
+    find "$OUTPUT_PATH/data" -not -path "$OUTPUT_PATH/data/textures/*" \
+                             -not -path "$OUTPUT_PATH/data/karts/*"    \
+                             -iname "*.png" | while read f; do convert_to_jpg "$f"; done
 
-    find assets/data -iname "*.b3dz" | while read f; do convert_to_jpg_extract_b3dz "$f"; done
-    find assets/data -iname "*.b3d" | while read f; do convert_to_jpg_update_b3d "$f"; done
-    find assets/data -iname "*.spm" | while read f; do convert_to_jpg_update_spm "$f"; done
-    find assets/data -iname "*.xml" | while read f; do convert_to_jpg_update_xml "$f"; done
+    find "$OUTPUT_PATH/data" -iname "*.b3dz" | while read f; do convert_to_jpg_extract_b3dz "$f"; done
+    find "$OUTPUT_PATH/data" -iname "*.b3d" | while read f; do convert_to_jpg_update_b3d "$f"; done
+    find "$OUTPUT_PATH/data" -iname "*.spm" | while read f; do convert_to_jpg_update_spm "$f"; done
+    find "$OUTPUT_PATH/data" -iname "*.xml" | while read f; do convert_to_jpg_update_xml "$f"; done
 
     if [ -s "./converted_textures" ]; then
         echo "Converted textures:"
@@ -641,42 +651,42 @@ if [ $CONVERT_TO_JPG -gt 0 ]; then
 fi
 
 if [ $DECREASE_QUALITY -gt 0 ]; then
-    find assets/data -iname "*.png" | while read f; do optimize_png "$f" "png"; done
+    find "$OUTPUT_PATH/data" -iname "*.png" | while read f; do optimize_png "$f" "png"; done
 fi
 
 
 # Copy data directory
 if [ $ONLY_ASSETS -eq 0 ]; then
     echo "Copy data directory"
-    cp -a ../data/* assets/data/
+    cp -a ../data/* "$OUTPUT_PATH/data"
 fi
 
 
 # Remove unused files
 for BLACKLIST_FILE in $BLACKLIST_FILES; do
-    rm -f "assets/$BLACKLIST_FILE"
+    rm -f "$OUTPUT_PATH/$BLACKLIST_FILE"
 done
 
 
 # Run optimize_data.sh script
 if [ $RUN_OPTIMIZE_SCRIPT -gt 0 ]; then
     echo "Run optimize_data.sh script"
-    sh -c 'cd assets/data; ../../../data/optimize_data.sh'
+    sh -c "cd "$OUTPUT_PATH/data"; ../../../data/optimize_data.sh"
 fi
 
 
 # Generate directories list
 echo "Generate directories list"
-find assets/* -type d | sort > assets/directories.txt
-sed -i s/'.\/assets\/'// assets/directories.txt
-sed -i s/'assets\/'// assets/directories.txt
+find "$OUTPUT_PATH"/* -type d | sort > "$OUTPUT_PATH/directories.txt"
+sed -i s/".\/$OUTPUT_PATH\/"// "$OUTPUT_PATH/directories.txt"
+sed -i s/"$OUTPUT_PATH\/"// "$OUTPUT_PATH/directories.txt"
 
 # A file that can be used to check if apk has assets
-echo "has_assets" > assets/has_assets.txt
+echo "has_assets" > "$OUTPUT_PATH/has_assets.txt"
 
 
 # It will be probably ignored by ant, but create it anyway...
-touch assets/.nomedia
+touch "$OUTPUT_PATH/.nomedia"
 
 
 echo "Done."