summaryrefslogtreecommitdiffstats
path: root/scripts/create_svnignore
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/create_svnignore')
-rwxr-xr-xscripts/create_svnignore82
1 files changed, 82 insertions, 0 deletions
diff --git a/scripts/create_svnignore b/scripts/create_svnignore
new file mode 100755
index 00000000..fed482fa
--- /dev/null
+++ b/scripts/create_svnignore
@@ -0,0 +1,82 @@
+#!/bin/sh
+# This script makes a preliminary svn:ignore in the current dir by
+# adding some standard stuff according to Makefile.am.
+# License: GPL
+
+addignore() {
+ if ! test -f svnignore.tmp; then
+ svn pg svn:ignore . | sed -e "s, *,," | grep -v '^$' > svnignore.tmp
+ addedsomething=0
+ fi
+ if ! grep -q "^$1\$" svnignore.tmp; then
+ echo "$1" >> svnignore.tmp && echo "added $1 to svn:ignore"
+ sort -u -o svnignore.tmp svnignore.tmp
+ addedsomething=1
+ fi
+}
+
+recurse=0
+if test $# -eq 1; then
+ if test "$1" = "-r"; then
+ recurse=1
+ fi
+fi
+
+handledir() {
+ (
+ cd $1
+ trap "rm svnignore.tmp" 1 2 15
+ if test -f Makefile.am; then
+ if test $recurse -eq 1; then
+ echo "Entering $1"
+ fi
+ addignore Makefile
+ addignore Makefile.in
+
+ bins=`perl -p -e 's/\\\s*\n/ /g' Makefile.am | egrep '_PROGRAMS|_LTLIBRARIES|_LIBRARIES' | sed -e 's/.*=\s*//;s/#.*//;s/\$([^)]*)//'`
+ if test -n "$bins"; then
+ addignore ".libs"
+ addignore ".deps"
+ for prog in $bins; do
+ addignore "$prog"
+ done
+ fi
+ grep -q LIBRARIES Makefile.am && addignore ".libs"
+ grep -q METASOURCES Makefile.am && addignore "*.moc"
+ fgrep -q .skel Makefile.am && addignore "*.kidl"
+ fgrep -q .skel Makefile.am && addignore "*_skel.c*"
+ fgrep -q .stub Makefile.am && addignore "*_stub.cpp"
+ if fgrep -q .ui Makefile.am; then
+ uis=`ls -1 *.ui 2>/dev/null`
+ for ui in $uis; do
+ addignore ${ui/.ui/.h}
+ addignore ${ui/.ui/.cpp}
+ done
+ fi
+
+ grep -q "^include.*/Doxyfile.am$" Makefile.am && addignore "Doxyfile"
+
+ if test "$addedsomething" = 1; then
+ svn propset svn:ignore -F svnignore.tmp .
+ fi
+ rm svnignore.tmp
+ else
+ echo "Skipping $1"
+ fi
+ )
+}
+
+
+if test -f Makefile.am; then
+ if test $recurse -eq 1; then
+ find . -type d | egrep -v 'CVS|.svn' | sed -e 's,/$,,' | \
+ while read dir; do
+ handledir $dir
+ done
+ else
+ handledir .
+ fi
+else
+ echo "No Makefile.am found!"
+fi
+