Subject: | Leave stdin as is |
A simple SlayMakefile containing:
all:
tty
would output something like "not a tty". This is different behavior than with normal GNU or BSD make.
The attached patch tries to fix this problem by not touching stdin at all.
Subject: | 0001-leave-stdin-as-is.patch |
From e5023ee0b4dff900cef96f27fb4518c8ef96a0e1 Mon Sep 17 00:00:00 2001
From: Slaven Rezic <slaven@rezic.de>
Date: Sat, 27 Jun 2015 18:42:40 +0200
Subject: [PATCH] leave stdin as is
---
lib/Slay/MakerRule.pm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/Slay/MakerRule.pm b/lib/Slay/MakerRule.pm
index c2cb13f..8b203db 100644
--- a/lib/Slay/MakerRule.pm
+++ b/lib/Slay/MakerRule.pm
@@ -400,7 +400,7 @@ sub exec {
if $options->{debug} ;
## It's a command line in list form, so don't exec the shell
my $out ;
- run $act, \undef, \$out ;
+ run $act, '>', \$out ;
push( @output, $out ) ;
}
elsif ( ! ref $act ) {
@@ -411,7 +411,7 @@ sub exec {
if $options->{debug} ;
## It's a command line in string form
my $out ;
- run [ 'sh', '-c', $_ ], \undef, \$out ;
+ run [ 'sh', '-c', $_ ], '>', \$out ;
$_ =~ m{(\S*)} ;
my $cmd = $1 ;
push( @output, $out ) ;
--
2.1.2