exclude git/arc files from tgz archive
[blender.git] / build_files / utils / build_tgz.sh
index 9ffa72b8d61445f411cc4156c15240ef7ea9dcea..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"
@@ -23,17 +25,26 @@ 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])]"
+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 | python -c "$FILTER_FILES_PY" > $BASE_DIR/$MANIFEST
+git ls-files | python3 -c "$FILTER_FILES_PY" > $BASE_DIR/$MANIFEST
 
 # Enumerate submodules
-for lcv in $(git submodule | awk '{print $2}'); do
+for lcv in $(git submodule | awk '{print $2}' | grep -v "$SUBMODULE_EXCLUDE"); do
        cd "$BASE_DIR"
        cd "$blender_srcdir/$lcv"
-       git ls-files | python -c "$FILTER_FILES_PY" | 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"