exclude git/arc files from tgz archive
[blender.git] / build_files / utils / build_tgz.sh
index b0ff8ea2aa8da84b390f6218fda4adf6d19c9f32..3c921081c292a4c0400bfca97f25811dc3f87728 100755 (executable)
@@ -13,8 +13,10 @@ blender_subversion=$(grep "BLENDER_SUBVERSION\s" "$blender_srcdir/source/blender
 
 if [ "$blender_version_cycle" = "release" ] ; then
        VERSION=$(expr $blender_version / 100).$(expr $blender_version % 100)$blender_version_char
+       SUBMODULE_EXCLUDE="^\(release/scripts/addons_contrib\)$"
 else
        VERSION=$(expr $blender_version / 100).$(expr $blender_version % 100)_$blender_subversion
+       SUBMODULE_EXCLUDE="^$"  # dummy regex
 fi
 
 MANIFEST="blender-$VERSION-manifest.txt"
@@ -22,15 +24,27 @@ TARBALL="blender-$VERSION.tar.gz"
 
 cd "$blender_srcdir"
 
+# not so nice, but works
+FILTER_FILES_PY=\
+"import os, sys; "\
+"[print(l[:-1]) for l in sys.stdin.readlines() "\
+"if os.path.isfile(l[:-1]) "\
+"if os.path.basename(l[:-1]) not in {"\
+"'.gitignore', "\
+"'.gitmodules', "\
+"'.arcconfig', "\
+"}"\
+"]"
+
 # Build master list
 echo -n "Building manifest of files:  \"$BASE_DIR/$MANIFEST\" ..."
-git ls-files > $BASE_DIR/$MANIFEST
+git ls-files | python3 -c "$FILTER_FILES_PY" > $BASE_DIR/$MANIFEST
 
 # Enumerate submodules
-for lcv in $(git submodule | cut -f2 -d" "); do
+for lcv in $(git submodule | awk '{print $2}' | grep -v "$SUBMODULE_EXCLUDE"); do
        cd "$BASE_DIR"
        cd "$blender_srcdir/$lcv"
-       git ls-files | awk '$0="'"$lcv"/'"$0' >> $BASE_DIR/$MANIFEST
+       git ls-files | python3 -c "$FILTER_FILES_PY" | awk '$0="'"$lcv"/'"$0' >> $BASE_DIR/$MANIFEST
        cd "$BASE_DIR"
 done
 echo "OK"