Article Figure 1 Listing 1 Listing 2 Listing 3 feb2007.tar

Listing 2 create_distribution

#!/bin/ksh
# Listing 2

#====================================================================
# Name: create_distribution
#
# Description:
#
# create_distribution creates the directory structures and
# distribution files used by distribute_release.
#
# Author: John Spurgeon
#====================================================================

transport=""
distrib_dir=""
release_dir="/var/spool/pkg/release/"

while getopts h:t: OPTION
do
    case $OPTION in
    h) hosts=$OPTARG ;;
    t)
        transport=$OPTARG
        distrib_dir="${release_dir}.${transport}/"
        ;;
    esac
done

shift $(($OPTIND-1))
module=$1

if [[ -n $module ]]
then
    if [[ ! -d ${release_dir}${module} ]]
    then
        mkdir -p ${release_dir}${module}
    fi

    if [[ -n $distrib_dir ]]
    then
        rm -rf ${distrib_dir}${module}
        mkdir -p ${distrib_dir}${module}

        for host in $hosts
        do
            case $transport in
            nfs)
                ln -s /net/${host}${release_dir} \
                ${distrib_dir}${module}/${host}
                ;;
            rsh|ssh)
                touch ${distrib_dir}${module}/${host}
                ;;
            esac
        done
    fi
fi
# End create_distribution