|
Last change
on this file was
18914,
checked in by westram, 4 years ago
|
- fix error handling for piped commands in perl
- when forking piped commands
- use error message ($!) instead of exitcode ($?).
- use message 'failed to fork'.
- when closing piped commands
- show IPC errors and exitcode of command.
|
-
Property svn:executable set to
*
|
|
File size:
921 bytes
|
| Line | |
|---|
| 1 | #!/usr/bin/perl |
|---|
| 2 | |
|---|
| 3 | use strict; |
|---|
| 4 | use warnings; |
|---|
| 5 | |
|---|
| 6 | sub get_depends($) { |
|---|
| 7 | my ($lib) = @_; |
|---|
| 8 | my @depends = (); |
|---|
| 9 | |
|---|
| 10 | my $cmd = './needed_libs.pl -D -U -n '.$lib; |
|---|
| 11 | # print "cmd=$cmd\n"; |
|---|
| 12 | |
|---|
| 13 | open(DEPENDS,$cmd.'|') || die "failed to fork '$cmd' (Reason: $!)"; |
|---|
| 14 | foreach (<DEPENDS>) { |
|---|
| 15 | chomp; |
|---|
| 16 | my @d = split(/ /,$_); |
|---|
| 17 | foreach (@d) { push @depends, $_; } |
|---|
| 18 | } |
|---|
| 19 | close(DEPENDS) || die "failed to execute '$cmd' (Reason: $! exitcode=$?)"; |
|---|
| 20 | |
|---|
| 21 | return @depends; |
|---|
| 22 | } |
|---|
| 23 | |
|---|
| 24 | sub main() { |
|---|
| 25 | my $args = scalar(@ARGV); |
|---|
| 26 | if ($args!=1) { |
|---|
| 27 | die "Usage: gen_dep.pl suffix\nFilter to create dep.*-files\n"; |
|---|
| 28 | } |
|---|
| 29 | |
|---|
| 30 | my $suffix = shift @ARGV; |
|---|
| 31 | foreach my $lib (<>) { |
|---|
| 32 | chomp($lib); |
|---|
| 33 | |
|---|
| 34 | my @depends_on = get_depends($lib); |
|---|
| 35 | |
|---|
| 36 | my $base = $lib; |
|---|
| 37 | $base =~ s/\.(a|o|so)$//; |
|---|
| 38 | if ($base =~ /^lib\/lib/) { $base = $'.'/'.$'; } |
|---|
| 39 | |
|---|
| 40 | print "$base.$suffix:"; |
|---|
| 41 | foreach (@depends_on) { |
|---|
| 42 | print " $_.$suffix"; |
|---|
| 43 | } |
|---|
| 44 | print "\n"; |
|---|
| 45 | } |
|---|
| 46 | } |
|---|
| 47 | main(); |
|---|
| 48 | |
|---|
Note: See
TracBrowser
for help on using the repository browser.