summaryrefslogtreecommitdiffstats
path: root/keximdb/src/convert.sh
diff options
context:
space:
mode:
Diffstat (limited to 'keximdb/src/convert.sh')
-rwxr-xr-xkeximdb/src/convert.sh98
1 files changed, 98 insertions, 0 deletions
diff --git a/keximdb/src/convert.sh b/keximdb/src/convert.sh
new file mode 100755
index 0000000..60c04d2
--- /dev/null
+++ b/keximdb/src/convert.sh
@@ -0,0 +1,98 @@
+#!/bin/bash
+MDB_CVS_DIR=mdbtools.cvs
+MDB_ORIG_DIR=mdbtools.old
+MDB_ANSI_DIR=mdbtools.ansi
+
+usage(){
+ echo Usage:
+ echo " convert.sh co"
+ echo " Checkout mdbtools from cvs into $MDB_CVS_DIR."
+ echo " Press enter when prompted for password."
+ echo " convert.sh symlink"
+ echo " Create symlink farm in $MDB_ORIG_DIR pointing to"
+ echo " mdbtools CVS checkout at $MDB_CVS_DIR."
+ echo " convert.sh ansi"
+ echo " Make a copy of $MDB_ORIG_DIR in $MDB_ANSI_DIR where"
+ echo " all non-ANSI comments have been deleted or ansi-fied."
+ echo " convert.sh update"
+ echo " Update keximdb copy of mdbtools from $MDB_ANSI_DIR."
+ echo " convert.sh patch"
+ echo " Apply keximdb patches from diffs dir."
+ echo " convert.sh changes"
+ echo " Show files that need to be patched by diffs."
+ exit 1
+}
+
+build_links(){
+ rm -rf $MDB_ORIG_DIR
+ mkdir -p $MDB_ORIG_DIR/include
+ ln -s ../../$MDB_CVS_DIR/include/mdbtools.h $MDB_ORIG_DIR/include
+ mkdir $MDB_ORIG_DIR/libmdb
+ for d in mdbtools/libmdb/*.c ; do
+ ln -s ../../$MDB_CVS_DIR/src/libmdb/`basename $d` $MDB_ORIG_DIR/libmdb
+ done
+ exit
+}
+
+build_ansi(){
+ # ANSI comments or nothing
+ # Delete //-style comments
+ # so that they can be compiled with -ansi (used in the KDE
+ # build system). It just deletes the comments, in case they
+ # have further /*'s inside them.
+ rm -rf $MDB_ANSI_DIR
+ cp -r $MDB_ORIG_DIR $MDB_ANSI_DIR
+ for d in $MDB_ANSI_DIR/libmdb/*.c ; do
+ #sed -i 's#^\([ \t]*\)//\(.*\)##' $d
+ sed -i 's#//\(.*\)##' $d
+ done
+ exit
+}
+
+update(){
+ for d in mdbtools/libmdb/*.c ; do
+ cp $MDB_ANSI_DIR/libmdb/`basename $d` mdbtools/libmdb
+ done
+ cp $MDB_ANSI_DIR/include/mdbtools.h mdbtools/include
+ exit
+}
+
+apply_patch(){
+ for d in diffs/*.diff ; do
+ patch -p0 < $d
+ done
+ exit
+
+}
+
+show_patched(){
+ diff -ru mdbtools.ansi/ mdbtools/ | \
+ grep -v Only.in.mdbtools | \
+ grep ^---
+}
+
+cvs_checkout(){
+ CVSROOT=:pserver:anonymous@mdbtools.cvs.sourceforge.net:/cvsroot/mdbtools
+ if (( ! `grep -c mdbtools $HOME/.cvspass` )) ; then
+ cvs -d$CVSROOT login
+ fi
+ cvs -z3 -d$CVSROOT co -d $MDB_CVS_DIR mdbtools
+}
+
+case "$1" in
+ co) cvs_checkout ;;
+ symlink) build_links ;;
+ ansi) build_ansi ;;
+ update) update ;;
+ patch) apply_patch ;;
+ changes) show_patched ;;
+ *) usage
+esac
+
+#cp $1/include/mdbtools.h mdbtools/include
+#cp $1/libmdb/*.c mdbtools/libmdb
+# No backends
+#rm -f mdbtools/libmdb/{backend,stats,kkd,props}.c
+# No mdb_table_dump, it uses backends and not used anyway
+#sed -i '/^void mdb_table_dump/,/^}/d' mdbtools/libmdb/table.c
+