case $CONFIG in '') if test -f config.sh; then TOP=.; elif test -f ../config.sh; then TOP=..; elif test -f ../../config.sh; then TOP=../..; elif test -f ../../../config.sh; then TOP=../../..; elif test -f ../../../../config.sh; then TOP=../../../..; else echo "Can't find config.sh."; exit 1 fi . $TOP/config.sh ;; esac case "$0" in */*) cd `expr X$0 : 'X\(.*\)/'` ;; esac echo "Extracting kit/kitsend (with variable substitutions)" cat >kitsend < # # $Log: kitsend.SH,v $ # Revision 3.0.1.2 1994/05/06 13:59:57 ram # patch23: random code cleanup to follow pat tools style # patch23: made configurable from dist profile # patch23: now understands -V and -h options # patch23: mails now flagged with a bulk precedence # patch23: added X-Mailer header and now calls mailer via open() # # Revision 3.0.1.1 1993/08/19 06:42:15 ram # patch1: leading config.sh searching was not aborting properly # # Revision 3.0 1993/08/18 12:04:25 ram # Baseline for dist 3.0 netwide release. # \$orgname='$orgname'; \$mailer='$mailer'; \$version = '$VERSION'; \$patchlevel = '$PATCHLEVEL'; !GROK!THIS! cat >>kitsend <<'!NO!SUBS!' $progname = &profile; # Read ~/.dist_profile require 'getopts.pl'; &usage unless &Getopts('hV'); if ($opt_V) { print STDERR "$progname $version PL$patchlevel\n"; exit 0; } elsif ($opt_h) { &usage; } $orgname = &tilda_expand($orgname); chop($orgname = `cat $orgname`) if $orgname =~ m|^/|; &readpackage; while ($_ = shift) { if (/^(kit)?[1-9][\d,-]*$/) { s/^kit//; push(@argv, $_); } else { push(@dest, $_); } } $dest = join(' ',@dest); &usage unless $dest; @ARGV = @argv; if (-f "$package.kit10") { @filelist = <$package.kit[0-9][0-9]>; } else { @filelist = <$package.kit[0-9]>; } pop(@filelist) =~ /(\d+)$/ && ($maxnum = $1 + 0); if ($#ARGV < 0) { $argv = "1-$maxnum"; @ARGV = $argv; } $argv = &rangeargs(@ARGV); @ARGV = split(' ', $argv); $argv =~ s/ $//; if ($#ARGV < 0) { die "$progname: no kits specified.\n"; } elsif ($#ARGV) { print "$progname: sending $package $baserev kits $argv to $dest...\n"; } else { print "$progname: sending $package $baserev kit $argv to $dest...\n"; } fork && exit; $opt = '-odq' if $mailer =~ /sendmail/; until ($#ARGV < 0) { $kitnum = shift; # Provision for broken mailers... @dest = split(' ', $dest); while (@smalldest = splice(@dest, 0, 50)) { $to = join(', ', @smalldest); # Sensible To: for sendmail $smalldest = join(' ', @smalldest); open(MAILER, "|$mailer $opt $smalldest") || die "$progname: can't fork $mailer: $!\n"; print MAILER "To: $to Subject: $package $baserev kit #$kitnum Precedence: bulk X-Mailer: dist [version $version PL$patchlevel] Organization: $orgname [There are $maxnum kits for $package version $baserev.] "; $kitnum = "0$kitnum" if $kitnum < 10 && $maxnum >= 10; open(FILE,"$package.kit$kitnum") || die "$progname: can't open $package.kit$kitnum: $!\n"; while () { print MAILER; } close FILE; close MAILER; warn "$progname: ERROR mailing of $package.kit$kitnum to $dest\n" if $?; } } sub usage { print STDERR <= 0) { $_ = shift(@_); while (/^\s*\d/) { s/^\s*(\d+)//; $min = $1; if (s/^,//) { $max = $min; } elsif (s/^-(\d*)//) { $max = $1; if ($max == 0 && $maxnum) { $max = $maxnum; } s/^[^,],?//; } else { $max = $min; } for ($i = $min; $i <= $max; ++$i) { $result .= $i . ' '; } } } $result; } !NO!SUBS! $grep -v '^;#' ../pl/package.pl >>kitsend $grep -v '^;#' ../pl/tilde.pl >>kitsend $grep -v '^;#' ../pl/profile.pl >>kitsend chmod +x kitsend $eunicefix kitsend