exclude git/arc files from tgz archive
[blender.git] / build_files / utils / build_tgz.sh
index 577bdb41fb580e2d23ae25b5c22822d550db210d..3c921081c292a4c0400bfca97f25811dc3f87728 100755 (executable)
@@ -13,22 +13,39 @@ 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
 
 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
 else
        VERSION=$(expr $blender_version / 100).$(expr $blender_version % 100)_$blender_subversion
+       SUBMODULE_EXCLUDE="^$"  # dummy regex
 fi
 
 MANIFEST="blender-$VERSION-manifest.txt"
 TARBALL="blender-$VERSION.tar.gz"
 
 fi
 
 MANIFEST="blender-$VERSION-manifest.txt"
 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\" ..."
 
 # 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
 
 # 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"
        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"
 
 done
 echo "OK"