Check for changelog existence
[git-tools-moved-to-github.git] / id-deb-build / mkdist.sh
index 1dec8ea..52ef1e9 100755 (executable)
@@ -3,6 +3,11 @@ die () {
   exit 1
 }
 
+if [ "x$1" = x-l ]; then
+  localFiles=t
+  shift
+fi
+
 if test -f IDMETA; then
   . ./IDMETA
 else
@@ -14,9 +19,11 @@ DEBCHANGELOG=debian/changelog
 
 if [ "x$NAME" != x ]; then
   echo "Got name $NAME from IDMETA file"
-else
+elif test -f $DEBCHANGELOG; then
   NAME=`head -1 $DEBCHANGELOG|sed 's/ .*//g'`
   echo "Warning: assuming name $NAME from $DEBCHANGELOG"
+else
+  die "No $DEBCHANGELOG and no NAME in IDMETA"
 fi
 
 if [ "x$2" != x ]; then
@@ -37,12 +44,31 @@ if [ "x$1" != x ]; then
   VERSION=$1
 fi
 
-git archive --format=tar --prefix=$NAME-$VERSION/ v${VERSION} > tmp.tar || die "This version is not tagged in Git";
+trap 'rm -f tmp.tar' 0
+
+if [ -n "$localFiles" ]; then
+    echo "WARNING: using local files rather than git tag" >&2
+    echo "This is fine for testing, but should not be used for releases " >&2
+    pwd=`pwd`
+    dir=`basename "$pwd"`
+    cd ..
+    cp -a "$dir" $NAME-$VERSION
+    rm -rf $NAME-$VERSION/.git
+    tar cf "$pwd"/tmp.tar $NAME-$VERSION
+    rm -rf $NAME-$VERSION
+    cd "$dir"
+else
+    echo "from git"
+    git archive --format=tar --prefix=$NAME-$VERSION/ v${VERSION} > tmp.tar || die "This version is not tagged in Git";
+fi
+
 tar xf tmp.tar
 rm tmp.tar
 for file in debian $OMIT_FROM_DIST; do
-  echo "Omitting $file from distribution"
-  rm -r $NAME-$VERSION/$file
+  if [ -e "$file" ]; then
+    echo "Omitting $file from distribution"
+    rm -rf $NAME-$VERSION/$file
+  fi
 done
 tar cfz $NAME-$VERSION.tar.gz $NAME-$VERSION
-rm -r $NAME-$VERSION
+rm -rf $NAME-$VERSION