#!/bin/sh # wrapper for installpkg to make meta-pkg like system. # if directory name is given, cd to the directory and install everything package_name() { STRING=`basename $1 .tgz` # Check for old style package name with one segment: if [ "`echo $STRING | cut -f 1 -d -`" = "`echo $STRING | cut -f 2 -d -`" ]; then echo $STRING else # has more than one dash delimited segment # Count number of segments: INDEX=1 while [ ! "`echo $STRING | cut -f $INDEX -d -`" = "" ]; do INDEX=`expr $INDEX + 1` done INDEX=`expr $INDEX - 1` # don't include the null value # If we don't have four segments, return the old-style (or out of spec) package name: if [ "$INDEX" = "2" -o "$INDEX" = "3" ]; then echo $STRING else # we have four or more segments, so we'll consider this a new-style name: NAME=`expr $INDEX - 3` NAME="`echo $STRING | cut -f 1-$NAME -d -`" echo $NAME # cruft for later ;) #VER=`expr $INDEX - 2` #VER="`echo $STRING | cut -f $VER -d -`" #ARCH=`expr $INDEX - 1` #ARCH="`echo $STRING | cut -f $ARCH -d -`" #BUILD="`echo $STRING | cut -f $INDEX -d -`" fi fi } opt='' pkgs='' TAGFILE='' while [ $# -gt 0 ] do case $1 in -root) # -root /mnt opts="`echo $opts $1 $2`" shift ; shift ;; -priority) opts="`echo $opts $1 $2`" shift ; shift ;; -tagfile) opts="`echo $opts $1 $2`" TAGFILE=$2 shift ; shift ;; -*) opts="`echo $opts $1`" shift ;; *) pkgs="`echo $pkgs $1`" shift ;; esac done #echo "opts= $opts" #echo "pkgs= $pkgs" for i in $pkgs ; do if [ -d $i ]; then packagebase="`package_name $i`" # echo "pkgs:$pkgs, packagebase:$packagebase" PRIORITY='' if [ -z $TAGFILE ]; then PRIORITY="ADD" elif grep "^$packagebase:" "$TAGFILE" | grep ADD > /dev/null 2> /dev/null ; then PRIORITY="ADD" elif grep "^$packagebase:" "$TAGFILE" | grep REC > /dev/null 2> /dev/null ; then PRIORITY="REC" elif grep "^$packagebase:" "$TAGFILE" | grep OPT > /dev/null 2> /dev/null ; then PRIORITY="OPT" elif grep "^$packagebase:" "$TAGFILE" | grep SKP > /dev/null 2> /dev/null ; then PRIORITY="SKP" fi #echo "package:$i priority:$PRIORITY" #sleep 3 if [ $PRIORITY = "ADD" -o $PRIORITY = "REC" ]; then # echo "cd to $i" cd $i for j in *.tgz ; do # echo "installing $j" installpkg -priority ADD $opts $j done cd .. fi else installpkg2 $opts $i fi done