#! /bin/sh # # 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 \ [--remove | --set \" \"]" #### #### Make sure that 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 #### #### 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 ;; *) 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