diff lint/get-sources.sh @ 0:13d2b8934445

Import AnaGram (near-)release tree into Mercurial.
author David A. Holland
date Sat, 22 Dec 2007 17:52:45 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lint/get-sources.sh	Sat Dec 22 17:52:45 2007 -0500
@@ -0,0 +1,99 @@
+#!/bin/sh
+# get-sources.sh - retrieve list of source files
+# usage: get-sources [-t] [-m] [-x]
+#
+# The idea of this script is that it suppresses .cpp and .h files that
+# correspond to .syn files.
+
+usage() {
+    echo "Usage: $0 [-t] [-m] [-x] topdir" 1>&2
+    echo "  -m    show main sources" 1>&2
+    echo "  -t    show tools sources" 1>&2
+    echo "  -x    show examples sources" 1>&2
+}
+
+DO_TOOLS=0
+DO_MAIN=0
+DO_EXAMPLES=0
+
+DSET=0
+FSET=0
+while [ "x$1" != x ]; do
+    case "$1" in
+	-t) DO_TOOLS=1; FSET=1;;
+	-m) DO_MAIN=1; FSET=1;;
+	-x) DO_EXAMPLES=1; FSET=1;;
+	-*) usage; exit 1;;
+	*)
+	    if [ -d "$1" -a $DSET = 0 ]; then
+		TOPDIR="$1"
+		DSET=1
+	    else
+		usage
+		exit 1
+	    fi
+	;;
+    esac
+shift
+done
+
+if [ $FSET = 0 ]; then
+    DO_TOOLS=1
+    DO_MAIN=1
+    DO_EXAMPLES=0
+fi
+
+if [ $DSET = 1 ]; then
+    cd "$TOPDIR" || exit 1
+    TOPDIR="${TOPDIR}/"
+fi
+
+############################################################
+
+get() {
+    (
+	cd "$1"
+	ls *.syn 2>/dev/null
+	ls *.cpp *.hpp *.c *.h 2>/dev/null
+	true
+    ) | awk '
+	{ basename=$1; sub("\\.[^\\.]*$", "", basename); }
+	/\.syn$/ { hide[basename] = 1; doprint($1); next; }
+	{ if (!hide[basename]) doprint($1); }
+	function doprint(f) { printf "%s/%s\n", dir, f; }
+    ' "dir=$1"
+}
+
+if [ $DO_TOOLS = 1 ]; then
+    for DIR in cgbigen checksum helpgen insertsums; do
+	get $DIR
+    done
+fi
+
+if [ $DO_MAIN = 1 ]; then
+    for DIR in \
+		support agcore \
+		guisupport icons dummygui vaclgui \
+		ag1 \
+		ag agcl \
+		run \
+    ; do
+	get anagram/$DIR
+    done
+fi
+
+if [ $DO_EXAMPLES = 1 ]; then
+    for DIR in \
+		include source \
+    ; do
+	get oldclasslib/$DIR
+    done
+    for DIR in \
+		dsl fc ffcalc hw mpp rcalc \
+    ; do
+	get examples/$DIR
+    done
+fi
+
+exit 0
+