merged, resolving conflicts in Admin/isatest/settings/afp-poly and src/HOL/Tools/Nitpick/nitpick_model.ML;
#!/usr/bin/env perl
#
# Author: Makarius
#
# exec process - with optional process group and report of pid
#
use warnings;
use strict;
# process group
my $group = $ARGV[0]; shift(@ARGV);
if ($group eq "group") {
use POSIX "setsid";
POSIX::setsid || die $!;
}
# report pid
my $pid_name = $ARGV[0]; shift(@ARGV);
if ($pid_name eq "-") {
print "$$\n";
}
else {
open (PID_FILE, ">", $pid_name) || die $!;
print PID_FILE "$$";
close PID_FILE;
}
# exec process
my $script = $ARGV[0]; shift(@ARGV);
if ($script eq "script") {
my $cmd_line = $ARGV[0]; shift(@ARGV);
exec $cmd_line || die $!;
}
else {
(exec { $ARGV[0] } @ARGV) || die $!;
}