summaryrefslogtreecommitdiffstats
path: root/debian/vendor-h2o/share/h2o/kill-on-close
diff options
context:
space:
mode:
Diffstat (limited to 'debian/vendor-h2o/share/h2o/kill-on-close')
-rwxr-xr-xdebian/vendor-h2o/share/h2o/kill-on-close63
1 files changed, 0 insertions, 63 deletions
diff --git a/debian/vendor-h2o/share/h2o/kill-on-close b/debian/vendor-h2o/share/h2o/kill-on-close
deleted file mode 100755
index 4890abd..0000000
--- a/debian/vendor-h2o/share/h2o/kill-on-close
+++ /dev/null
@@ -1,63 +0,0 @@
-#! /bin/sh
-exec ${H2O_PERL:-perl} -x $0 "$@"
-#! perl
-
-use strict;
-use warnings;
-use Errno qw(EINTR);
-use POSIX qw(WNOHANG);
-
-my $rmpath;
-
-while (@ARGV) {
- if ($ARGV[0] eq '--') {
- shift @ARGV;
- last;
- } elsif ($ARGV[0] !~ /^--/) {
- last;
- } elsif ($ARGV[0] =~ /^--rm(?:=(.*)|)$/) {
- shift @ARGV;
- if (defined $1) {
- $rmpath = $1;
- } else {
- die "option `--rm` requires an argument\n"
- unless @ARGV;
- $rmpath = shift @ARGV;
- }
- } else {
- die "unknown argument: $ARGV[0]";
- }
-}
-
-shift @ARGV
- if @ARGV && $ARGV[0] eq '--';
-
-die "Usage: $0 [--rm=path] -- cmd args...\n"
- unless @ARGV;
-
-open my $wait_fh, '<&', 5
- or die "failed to open wait file descriptor (fd=5):$!";
-
-my $pid = fork;
-die "fork failed:$!"
- if $pid == -1;
-if ($pid == 0) {
- exec @ARGV;
- die "failed to exec $ARGV[0]:$!";
-}
-
-$SIG{INT} = sub {};
-
-while (1) {
- my $r = sysread $wait_fh, my $buf, 1;
- last if !defined($r) || $r == 0 || ($r == -1 && $! != EINTR);
-}
-
-kill 'TERM', $pid;
-while (waitpid($pid, 0) != $pid) {
-}
-
-if (defined $rmpath) {
- exec '/bin/rm', '-rf', $rmpath;
- die "failed to exec /bin/rm:$!";
-}