diff options
Diffstat (limited to 'ACE/bin/ace_components')
-rwxr-xr-x | ACE/bin/ace_components | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/ACE/bin/ace_components b/ACE/bin/ace_components new file mode 100755 index 00000000000..23bfeb29149 --- /dev/null +++ b/ACE/bin/ace_components @@ -0,0 +1,111 @@ +#! /bin/sh +# $Id$ +# +# Encapsulates set/access of a components file, which records set of +# components that were built in a library. Intended to be used by +# GNUmakefiles and scripts. See ACE_wrappers/ace/GNUmakefile for an +# example. +# +usage="usage: $0 --ace | --orbsvcs | --tao | --pace \ + [--remove | --set \" <components list> \"]" + +#### +#### Make sure that PACE_ROOT, ACE_ROOT, and TAO_ROOT are set. +#### +if [ ! "$ACE_ROOT" ]; then + echo $0': your ACE_ROOT environment variable is not set!' 1>&2 + exit -1 +fi +if [ ! "$TAO_ROOT" ]; then + TAO_ROOT=$ACE_ROOT/TAO + export TAO_ROOT +fi +if [ ! "$PACE_ROOT" ]; then + PACE_ROOT=$ACE_ROOT/PACE + export PACE_ROOT +fi + +#### +#### Process command line arguments. +#### +if [ $# -ge 1 ]; then + case $1 in + --ace) components_file=$ACE_ROOT/ace/ACE_COMPONENTS.list ;; + --orbsvcs) + components_file=$TAO_ROOT/orbsvcs/orbsvcs/ORBSVCS_COMPONENTS.list ;; + --tao) components_file=$TAO_ROOT/tao/TAO_COMPONENTS.list ;; + --pace) components_file=$PACE_ROOT/PACE_COMPONENTS.list ;; + *) echo $usage; exit -1 ;; + esac + shift +else + echo $usage + exit -1 +fi + +set_components=0 +append_components=0 +if [ $# -ge 1 ]; then + if [ $1 = '--set' ]; then + set_components=1 + shift + if [ $# -eq 1 ]; then + components=$1 + shift + else + echo $usage + exit -1 + fi + elif [ $1 = '--append' ]; then + append_components=1 + shift + if [ $# -eq 1 ]; then + components=$1 + shift + else + echo $usage + exit -1 + fi + elif [ $1 = '--remove' ]; then + rm -f $components_file + else + echo $usage + exit -1 + fi +fi + +if [ $set_components -eq 1 ]; then + #### + #### Update the components file, if it has changed since last set. + #### + if [ -f $components_file ]; then + if echo "$components" | diff - $components_file > /dev/null; then + : + else + echo "$components" > $components_file + fi + else + echo "$components" > $components_file + fi +elif [ $append_components -eq 1 ]; then + #### + #### Update the components file, if it has changed since last set. + #### + if [ -f $components_file ]; then + if cat $components_file | grep "$components" > /dev/null; then + : + else + (cat $components_file; echo "$components") | tr ' ' '\012' | sort -u > $components_file.$$ + mv -f $components_file.$$ $components_file + fi + else + echo "$components" > $components_file + fi +else + #### + #### Access the contents of the components file, if it exists. + #### + if [ -f $components_file ]; then + cat $components_file + fi +fi |