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/kitpost (with variable substitutions)" cat >kitpost <>kitpost <<'!NO!SUBS!' $progname = &profile; # Read ~/.dist_profile require 'getopts.pl'; &usage unless $#ARGV >= 0; &usage unless &Getopts("hrVm:D:H:"); if ($opt_V) { print STDERR "$progname $version PL$patchlevel\n"; exit 0; } elsif ($opt_h) { &usage; } $RCSEXT = ',v' unless $RCSEXT; if ($inews eq 'inews') { $inews = '/usr/lib/news/inews' if -f '/usr/lib/news/inews'; } chdir '..' if -d '../bugs'; &readpackage; $orgname = &tilda_expand($orgname); chop($orgname = `cat $orgname`) if $orgname =~ m|^/|; if ($opt_r) { $repost = ' (REPOST)'; } while ($_ = shift) { if (/^(kit)?[1-9][\d\-]*$/) { s/^kit//; push(@argv,$_); } else { push(@ngroups,$_); } } $ngroups = join(',',@ngroups) unless $#ngroups < 0; $dest = $opt_m; &usage unless $ngroups || $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) { print STDERR "$progname: no kits specified.\n"; &usage; } else { local($s) = $#ARGV ? 's' : ''; print "$progname: posting $package $baserev kit$s $argv to $ngroups...\n" if $ngroups; print "$progname: mailing $package $baserev kit$s $argv to $dest...\n" if $dest; } $desc = "$opt_D, " if $opt_D; fork && exit; # Compute a suitable root message ID that all parts will reference, so that # threaded news readers will correctly process them. # Unfortunately, this works only when all kits are sent. ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time); $mon++; $rootmid = "$year$mon$mday$hour$min$sec.AA$$"; $first = $maxnum >= 10 ? "01" : "1"; $rootmsgid = "<$rootmid.P$first.$maintloc>"; until ($#ARGV < 0) { $kitnum = shift; $kitnum = "0$kitnum" if $kitnum < 10 && $maxnum >= 10; open(FILE, "$package.kit$kitnum") || die "$progname: can't open $package.kit$kitnum: $!\n"; if ($ngroups) { open(INEWS,"|$inews -h") || die "$progname: can't fork $inews: $!\n"; } if ($dest) { $opt = '-odq' if $mailer =~ /sendmail/; $dest =~ s/,/ /g; ($to = $dest) =~ s/\s+/, /g; open(MAILER,"|$mailer $opt $dest") || die "$progname: can't fork $mailer: $!\n"; } $msg_id = "<$rootmid.P$kitnum.$maintloc>"; $msg_id = $rootmsgid if $kitnum == 1; $msg_id .= "\nReferences: $rootmsgid" if $kitnum != 1; print INEWS "Newsgroups: $ngroups\n"; print MAILER "To: $to\n"; $head = < Archive-name: $package-$baserev/part$kitnum Environment: UNIX EOH print INEWS $head; print MAILER $head; if ($kitnum == 1 && $opt_H) { open(HEAD, $opt_H) || warn "$progname: can't open $opt_H: $!\n"; while () { print INEWS; print MAILER; } close HEAD; } while () { print INEWS; print MAILER; } close FILE; close INEWS; die "$progname: could not post part$kitnum.\n" if $ngroups && $?; close MAILER; die "$progname: could not send part$kitnum.\n" if $dest && $?; } 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 >>kitpost $grep -v '^;#' ../pl/tilde.pl >>kitpost $grep -v '^;#' ../pl/profile.pl >>kitpost chmod +x kitpost $eunicefix kitpost