7 use Time::HiRes qw(sleep);
9 use POSIX qw(strftime WIFSIGNALED WTERMSIG SIGINT);
12 use Y::AoC qw(grey red);
15 my $backup = "backup/$cmd";
16 $cmd = "./$cmd" if $cmd !~ /\//;
19 my $file = Mojo::File->new($cmd);
22 my $b = "$backup-".strftime("%H-%M-%S", localtime(time));
24 $mtime = $file->stat->mtime;
25 say grey("\nrunning $cmd @ARGV... ============================");
27 if ($? && WIFSIGNALED($?) && WTERMSIG($?) == SIGINT) {
28 say red(" Got SIGINT");
29 if ($file->stat->mtime > $mtime) {
33 say grey("FAILED: $?");
35 say grey("finished OK");
38 my $inotify = Linux::Inotify2->new;
39 $inotify->watch($cmd, IN_MODIFY);
40 say grey("\nWaiting for modification of $cmd ...");