Warning, /sdk/kde-dev-scripts/create_svnignore is written in an unsupported language. File is not indexed.
0001 #!/usr/bin/env bash
0002 # This script makes a preliminary svn:ignore in the current dir by
0003 # adding some standard stuff according to Makefile.am.
0004 # License: GPL
0005
0006 addignore() {
0007 if ! test -f svnignore.tmp; then
0008 svn pg svn:ignore . | sed -e "s, *,," | grep -v '^$' > svnignore.tmp
0009 addedsomething=0
0010 fi
0011 if ! grep -x -F -q "$1" svnignore.tmp; then
0012 echo "$1" >> svnignore.tmp && echo "added $1 to svn:ignore"
0013 sort -u -o svnignore.tmp svnignore.tmp
0014 addedsomething=1
0015 fi
0016 }
0017
0018 recurse=0
0019 if test $# -eq 1; then
0020 if test "$1" = "-r"; then
0021 recurse=1
0022 fi
0023 fi
0024
0025 handledir() {
0026 (
0027 cd $1
0028 trap "rm svnignore.tmp" 1 2 15
0029 addedsomething=0
0030 if test -f CMakeLists.txt; then
0031 if test $recurse -eq 1; then
0032 echo "Entering $1"
0033 fi
0034 addignore Makefile
0035 addignore CMakeFiles
0036 addignore cmake_install.cmake
0037 addignore DartTestfile.txt
0038 addignore install_icons.cmake
0039 addignore progress.make
0040 grep -q kde4_automoc CMakeLists.txt && addignore "*.moc"
0041 grep -q kde4_add_dcop_skels CMakeLists.txt && addignore "*.kidl"
0042 grep -q kde4_add_dcop_skels CMakeLists.txt && addignore "*_skel.c*"
0043 grep -q kde4_add_dcop_stubs CMakeLists.txt && addignore "*_stub.cpp"
0044 #TODO add binary
0045
0046 elif test -f Makefile.am; then
0047 if test $recurse -eq 1; then
0048 echo "Entering $1"
0049 fi
0050 addignore Makefile
0051 addignore Makefile.in
0052
0053 bins=`perl -p -e 's/\\\s*\n/ /g' Makefile.am | grep _PROGRAMS | sed -e 's/.*=\s*//;s/#.*//;s/\$([^)]*)//'`
0054 if test -n "$bins"; then
0055 addignore ".libs"
0056 addignore ".deps"
0057 for prog in $bins; do
0058 addignore "$prog"
0059 done
0060 fi
0061 grep -q LIBRARIES Makefile.am && addignore ".libs"
0062 grep -q METASOURCES Makefile.am && addignore "*.moc"
0063 fgrep -q .skel Makefile.am && addignore "*.kidl"
0064 fgrep -q .skel Makefile.am && addignore "*_skel.c*"
0065 fgrep -q .stub Makefile.am && addignore "*_stub.cpp"
0066
0067 grep -q "^include.*/Doxyfile.am$" Makefile.am && addignore "Doxyfile"
0068 else
0069 qmakefiles=`ls -1 *.pro 2>/dev/null`
0070 if test -n "$qmakefiles"; then
0071 if test $recurse -eq 1; then
0072 echo "Entering $1"
0073 fi
0074 addignore Makefile
0075 addignore .obj
0076 addignore .moc
0077 addignore "*.moc"
0078 addignore "moc_*.cpp"
0079 addignore .ui
0080 for f in `ls -1 *.pro`; do
0081 if fgrep -q debug_and_release $f; then
0082 addignore "Makefile.Debug"
0083 addignore "Makefile.Release"
0084 fi
0085 template=`grep ^TEMPLATE $f | sed -e 's/.*=[ \t]*//'`
0086 if test -z "$template" -o "$template" = "app"; then
0087 target=`grep ^TARGET $f | sed -e 's/.*=[ \t]*//'`
0088 test -z "$target" && target=`echo $f | sed -e 's/\.pro$//'`
0089 addignore $target
0090 addignore $target.exe
0091 # addignore $target.app # Mac OSX, but only gui apps (grep for CONFIG?)
0092 fi
0093 # RESOURCES = foo.qrc -> addignore qrc_foo.cpp
0094 for resource in `perl -p -e 's/\\\s*\n/ /g' $f | grep ^RESOURCES | sed -e 's/.*=\s*//;s/#.*//;s/\$([^)]*)//'`; do
0095 addignore qrc_`echo $resource | sed -e 's/\.qrc$/\.cpp/'`
0096 done
0097 # FORMS = foo.ui -> addignore ui_foo.h
0098 for form in `perl -p -e 's/\\\s*\n/ /g' $f | grep ^FORMS | sed -e 's/.*=\s*//;s/#.*//;s/\$([^)]*)//'`; do
0099 addignore ui_`echo $form | sed -e 's/\.ui$/\.h/'`
0100 done
0101 done
0102 else
0103 echo "Skipping $1"
0104 fi
0105 fi
0106 if test "$addedsomething" = 1; then
0107 svn propset svn:ignore -F svnignore.tmp .
0108 fi
0109 rm -f svnignore.tmp
0110 )
0111 }
0112
0113 qmakefiles=`ls -1 *.pro 2>/dev/null`
0114 if test -f Makefile.am -o -n "$qmakefiles" -o -f CMakeLists.txt; then
0115 if test $recurse -eq 1; then
0116 find . -type d | egrep -v 'CVS|.svn' | sed -e 's,/$,,' | \
0117 while read dir; do
0118 handledir $dir
0119 done
0120 else
0121 handledir .
0122 fi
0123 else
0124 echo "No Makefile.am found!"
0125 fi
0126