grim/guifications3

Parents a1a1565e34d7
Children d6cf6829b037
this should be working a lot better now. It's using a new list library Ethan Blanton threw together for me
--- a/gflib/gflib-autogen.sh Tue Sep 08 18:59:59 2009 -0500
+++ b/gflib/gflib-autogen.sh Thu Sep 10 22:01:02 2009 -0500
@@ -21,6 +21,57 @@
SEQ_COMMAND="seq"
###############################################################################
+# A list library similar to the lists in TCL
+# Copyright (C) 2009 Ethan Blanton
+###############################################################################
+lappend() {
+ __list=$1
+ if lempty $__list; then
+ eval "$__list=$2"
+ else
+ eval "$__list=\"\$$__list
+ $2\""
+ fi
+}
+
+lindex() {
+ eval __list=\$$1
+ cat <<EOF | sed -e "$2!d"
+$__list
+EOF
+}
+
+lempty() {
+ eval test -z \"\$$1\"
+}
+
+llength() {
+ eval __list=\$$1
+ cat <<EOF | wc -l
+$__list
+EOF
+}
+
+lrange() {
+ catlist $1 | sed -e "$2,$3!d"
+}
+
+catlist() {
+ eval __list=\$$1
+ cat <<EOF
+$__list
+EOF
+}
+
+lreplace() {
+ __listname=$1
+ __listindex=$2
+ __listvalue=$3
+ eval "$__listname=\`catlist $__listname | sed -e '${__listindex}c\\\\
+$__listvalue'\`"
+}
+
+###############################################################################
# Some helper functions
###############################################################################
add_command () {
@@ -30,11 +81,9 @@
# we need to make sure to entry something into the array for args even if
# it's empty. If it is, we set it to NONE, which we check for later
ARGS="${@}"
- test "${ARGS}" || ARGS="NONE"
- # add command and flags to our arrays
- COMMANDS=( "${COMMANDS[@]}" "${CMD}" )
- FLAGS=( "${FLAGS[@]}" "${ARGS}" )
+ lappend COMMANDS ${CMD}
+ lappend FLAGS ${ARGS}
}
check_config_file() {
@@ -69,8 +118,8 @@
}
check_commands () {
- for i in `${SEQ_COMMAND} 0 $(( ${#COMMANDS[*]} - 1 ))` ; do
- check_command ${COMMANDS[${i}]}
+ catlist COMMANDS | while read CMD; do
+ check_command ${CMD}
done
}
@@ -107,11 +156,13 @@
}
run_commands () {
- for i in `${SEQ_COMMAND} 0 $(( ${#COMMANDS[*]} - 1 ))` ; do
- ARGS=${FLAGS[${i}]}
- test "${ARGS}" = "NONE" && ARGS=""
+ LEN=`llength COMMANDS`
+
+ for i in `${SEQ_COMMAND} 1 $(( ${LEN} - 1 ))` ; do
+ CMD=`lindex COMMANDS ${i}`
+ ARGS=`lindex FLAGS ${i}`
- run_command ${COMMANDS[${i}]} ${ARGS}
+ run_command ${CMD} ${ARGS}
done
}