--- /dev/null
+#!/bin/sh
+
+cd ./$(git rev-parse --show-cdup)
+
+if ! git submodule foreach --quiet 'git diff-files --quiet && git diff-index --quiet HEAD'
+then
+ echo >&2 "Submodules are not clean"
+ exit 1
+fi
+
+if ! git diff-files --quiet || ! git diff-index --quiet HEAD
+then
+ echo >&2 "The work tree is not clean"
+ exit 1
+fi
+
+VERSION=`git describe|sed -e s/^v//`
+
+( git submodule foreach --quiet 'git ls-files|sed -e "s|^|$path/|"'; \
+ git ls-files -s|grep -v ^16|awk '{print $4;}' ) \
+ | grep -v '\(.gitignore\|.gitmodules\)' | \
+tar -czf frsh-forb-${VERSION}.tar.gz --files-from - --transform "s|^\([^\.].*\)|frsh-forb-${VERSION}/\1|"