#!/bin/bash try_assign_sec() { local file="$1" local sec="$2" local val=`_ytools_cat_section "$file" "$sec"` [ -n "$val" ] && eval $3=\"$val\" } usage() { cat <<- EOT | sed 's/^ *|//' | | $myname [options] | | options are | | -h: display this help message and exit sucessfully | -F filename read project description file | -d "description" use description | EOT goodbye $1 } set -e project_descr_file="$1" myname=`basename $0` eval set -- `getopt -- hF:d:n:s:p:v:V: "$@"` while [ "$1" != -- ]; do case $1 in -h) usage 0;; -F) project_descr_file="$2" shift ;; -d) description="$2" shift ;; -n) name="$2" shift ;; -s) summary="$2" shift ;; -p) prefix="$2" shift ;; -v) version="$2" shift ;; -V) variables="$variables$2\n" shift ;; *) usage 1;; esac shift done shift [ -r "$project_descr_file" ] && { . ytools-functions.sh try_assign_sec $project_descr_file description descr try_assign_sec $project_descr_file summary summary } [ "$variables" ] && echo -e "$variables" cat <<-EOT prefix=$prefix exec_prefix=\${prefix} includedir=\${prefix}/include libdir=\${exec_prefix}/lib Name: $name Description: $summary Version: $version Cflags: -I\${includedir}/foo Libs: -L\${libdir} -lfoo EOT