Read opts file in perl instead of 'cat file | perl' to avoid occasional 'cat: write error: Broken pipe'.

This commit is contained in:
Daniel Nichter
2013-08-09 21:21:55 +00:00
parent 9e4bcf0324
commit a6dc5a91ec
7 changed files with 189 additions and 161 deletions

View File

@@ -209,10 +209,13 @@ parse_options() {
_parse_pod() { _parse_pod() {
local file="$1" local file="$1"
cat "$file" | PO_DIR="$PO_DIR" perl -ne ' PO_FILE="$file" PO_DIR="$PO_DIR" perl -e '
BEGIN { $/ = ""; } $/ = "";
next unless $_ =~ m/^=head1 OPTIONS/; my $file = $ENV{PO_FILE};
while ( defined(my $para = <>) ) { open my $fh, "<", $file or die "Cannot open $file: $!";
while ( defined(my $para = <$fh>) ) {
next unless $para =~ m/^=head1 OPTIONS/;
while ( defined(my $para = <$fh>) ) {
last if $para =~ m/^=head1/; last if $para =~ m/^=head1/;
chomp; chomp;
if ( $para =~ m/^=item --(\S+)/ ) { if ( $para =~ m/^=item --(\S+)/ ) {
@@ -220,7 +223,7 @@ _parse_pod() {
my $file = "$ENV{PO_DIR}/$opt"; my $file = "$ENV{PO_DIR}/$opt";
open my $opt_fh, ">", $file or die "Cannot open $file: $!"; open my $opt_fh, ">", $file or die "Cannot open $file: $!";
print $opt_fh "long:$opt\n"; print $opt_fh "long:$opt\n";
$para = <>; $para = <$fh>;
chomp; chomp;
if ( $para =~ m/^[a-z ]+:/ ) { if ( $para =~ m/^[a-z ]+:/ ) {
map { map {
@@ -228,7 +231,7 @@ _parse_pod() {
my ($attrib, $val) = split(/: /, $_); my ($attrib, $val) = split(/: /, $_);
print $opt_fh "$attrib:$val\n"; print $opt_fh "$attrib:$val\n";
} split(/; /, $para); } split(/; /, $para);
$para = <>; $para = <$fh>;
chomp; chomp;
} }
my ($desc) = $para =~ m/^([^?.]+)/; my ($desc) = $para =~ m/^([^?.]+)/;
@@ -237,6 +240,7 @@ _parse_pod() {
} }
} }
last; last;
}
' '
} }

View File

@@ -211,10 +211,13 @@ parse_options() {
_parse_pod() { _parse_pod() {
local file="$1" local file="$1"
cat "$file" | PO_DIR="$PO_DIR" perl -ne ' PO_FILE="$file" PO_DIR="$PO_DIR" perl -e '
BEGIN { $/ = ""; } $/ = "";
next unless $_ =~ m/^=head1 OPTIONS/; my $file = $ENV{PO_FILE};
while ( defined(my $para = <>) ) { open my $fh, "<", $file or die "Cannot open $file: $!";
while ( defined(my $para = <$fh>) ) {
next unless $para =~ m/^=head1 OPTIONS/;
while ( defined(my $para = <$fh>) ) {
last if $para =~ m/^=head1/; last if $para =~ m/^=head1/;
chomp; chomp;
if ( $para =~ m/^=item --(\S+)/ ) { if ( $para =~ m/^=item --(\S+)/ ) {
@@ -222,7 +225,7 @@ _parse_pod() {
my $file = "$ENV{PO_DIR}/$opt"; my $file = "$ENV{PO_DIR}/$opt";
open my $opt_fh, ">", $file or die "Cannot open $file: $!"; open my $opt_fh, ">", $file or die "Cannot open $file: $!";
print $opt_fh "long:$opt\n"; print $opt_fh "long:$opt\n";
$para = <>; $para = <$fh>;
chomp; chomp;
if ( $para =~ m/^[a-z ]+:/ ) { if ( $para =~ m/^[a-z ]+:/ ) {
map { map {
@@ -230,7 +233,7 @@ _parse_pod() {
my ($attrib, $val) = split(/: /, $_); my ($attrib, $val) = split(/: /, $_);
print $opt_fh "$attrib:$val\n"; print $opt_fh "$attrib:$val\n";
} split(/; /, $para); } split(/; /, $para);
$para = <>; $para = <$fh>;
chomp; chomp;
} }
my ($desc) = $para =~ m/^([^?.]+)/; my ($desc) = $para =~ m/^([^?.]+)/;
@@ -239,6 +242,7 @@ _parse_pod() {
} }
} }
last; last;
}
' '
} }

View File

@@ -252,10 +252,13 @@ parse_options() {
_parse_pod() { _parse_pod() {
local file="$1" local file="$1"
cat "$file" | PO_DIR="$PO_DIR" perl -ne ' PO_FILE="$file" PO_DIR="$PO_DIR" perl -e '
BEGIN { $/ = ""; } $/ = "";
next unless $_ =~ m/^=head1 OPTIONS/; my $file = $ENV{PO_FILE};
while ( defined(my $para = <>) ) { open my $fh, "<", $file or die "Cannot open $file: $!";
while ( defined(my $para = <$fh>) ) {
next unless $para =~ m/^=head1 OPTIONS/;
while ( defined(my $para = <$fh>) ) {
last if $para =~ m/^=head1/; last if $para =~ m/^=head1/;
chomp; chomp;
if ( $para =~ m/^=item --(\S+)/ ) { if ( $para =~ m/^=item --(\S+)/ ) {
@@ -263,7 +266,7 @@ _parse_pod() {
my $file = "$ENV{PO_DIR}/$opt"; my $file = "$ENV{PO_DIR}/$opt";
open my $opt_fh, ">", $file or die "Cannot open $file: $!"; open my $opt_fh, ">", $file or die "Cannot open $file: $!";
print $opt_fh "long:$opt\n"; print $opt_fh "long:$opt\n";
$para = <>; $para = <$fh>;
chomp; chomp;
if ( $para =~ m/^[a-z ]+:/ ) { if ( $para =~ m/^[a-z ]+:/ ) {
map { map {
@@ -271,7 +274,7 @@ _parse_pod() {
my ($attrib, $val) = split(/: /, $_); my ($attrib, $val) = split(/: /, $_);
print $opt_fh "$attrib:$val\n"; print $opt_fh "$attrib:$val\n";
} split(/; /, $para); } split(/; /, $para);
$para = <>; $para = <$fh>;
chomp; chomp;
} }
my ($desc) = $para =~ m/^([^?.]+)/; my ($desc) = $para =~ m/^([^?.]+)/;
@@ -280,6 +283,7 @@ _parse_pod() {
} }
} }
last; last;
}
' '
} }

View File

@@ -250,10 +250,13 @@ parse_options() {
_parse_pod() { _parse_pod() {
local file="$1" local file="$1"
cat "$file" | PO_DIR="$PO_DIR" perl -ne ' PO_FILE="$file" PO_DIR="$PO_DIR" perl -e '
BEGIN { $/ = ""; } $/ = "";
next unless $_ =~ m/^=head1 OPTIONS/; my $file = $ENV{PO_FILE};
while ( defined(my $para = <>) ) { open my $fh, "<", $file or die "Cannot open $file: $!";
while ( defined(my $para = <$fh>) ) {
next unless $para =~ m/^=head1 OPTIONS/;
while ( defined(my $para = <$fh>) ) {
last if $para =~ m/^=head1/; last if $para =~ m/^=head1/;
chomp; chomp;
if ( $para =~ m/^=item --(\S+)/ ) { if ( $para =~ m/^=item --(\S+)/ ) {
@@ -261,7 +264,7 @@ _parse_pod() {
my $file = "$ENV{PO_DIR}/$opt"; my $file = "$ENV{PO_DIR}/$opt";
open my $opt_fh, ">", $file or die "Cannot open $file: $!"; open my $opt_fh, ">", $file or die "Cannot open $file: $!";
print $opt_fh "long:$opt\n"; print $opt_fh "long:$opt\n";
$para = <>; $para = <$fh>;
chomp; chomp;
if ( $para =~ m/^[a-z ]+:/ ) { if ( $para =~ m/^[a-z ]+:/ ) {
map { map {
@@ -269,7 +272,7 @@ _parse_pod() {
my ($attrib, $val) = split(/: /, $_); my ($attrib, $val) = split(/: /, $_);
print $opt_fh "$attrib:$val\n"; print $opt_fh "$attrib:$val\n";
} split(/; /, $para); } split(/; /, $para);
$para = <>; $para = <$fh>;
chomp; chomp;
} }
my ($desc) = $para =~ m/^([^?.]+)/; my ($desc) = $para =~ m/^([^?.]+)/;
@@ -278,6 +281,7 @@ _parse_pod() {
} }
} }
last; last;
}
' '
} }

View File

@@ -263,10 +263,13 @@ parse_options() {
_parse_pod() { _parse_pod() {
local file="$1" local file="$1"
cat "$file" | PO_DIR="$PO_DIR" perl -ne ' PO_FILE="$file" PO_DIR="$PO_DIR" perl -e '
BEGIN { $/ = ""; } $/ = "";
next unless $_ =~ m/^=head1 OPTIONS/; my $file = $ENV{PO_FILE};
while ( defined(my $para = <>) ) { open my $fh, "<", $file or die "Cannot open $file: $!";
while ( defined(my $para = <$fh>) ) {
next unless $para =~ m/^=head1 OPTIONS/;
while ( defined(my $para = <$fh>) ) {
last if $para =~ m/^=head1/; last if $para =~ m/^=head1/;
chomp; chomp;
if ( $para =~ m/^=item --(\S+)/ ) { if ( $para =~ m/^=item --(\S+)/ ) {
@@ -274,7 +277,7 @@ _parse_pod() {
my $file = "$ENV{PO_DIR}/$opt"; my $file = "$ENV{PO_DIR}/$opt";
open my $opt_fh, ">", $file or die "Cannot open $file: $!"; open my $opt_fh, ">", $file or die "Cannot open $file: $!";
print $opt_fh "long:$opt\n"; print $opt_fh "long:$opt\n";
$para = <>; $para = <$fh>;
chomp; chomp;
if ( $para =~ m/^[a-z ]+:/ ) { if ( $para =~ m/^[a-z ]+:/ ) {
map { map {
@@ -282,7 +285,7 @@ _parse_pod() {
my ($attrib, $val) = split(/: /, $_); my ($attrib, $val) = split(/: /, $_);
print $opt_fh "$attrib:$val\n"; print $opt_fh "$attrib:$val\n";
} split(/; /, $para); } split(/; /, $para);
$para = <>; $para = <$fh>;
chomp; chomp;
} }
my ($desc) = $para =~ m/^([^?.]+)/; my ($desc) = $para =~ m/^([^?.]+)/;
@@ -291,6 +294,7 @@ _parse_pod() {
} }
} }
last; last;
}
' '
} }

View File

@@ -218,10 +218,13 @@ parse_options() {
_parse_pod() { _parse_pod() {
local file="$1" local file="$1"
cat "$file" | PO_DIR="$PO_DIR" perl -ne ' PO_FILE="$file" PO_DIR="$PO_DIR" perl -e '
BEGIN { $/ = ""; } $/ = "";
next unless $_ =~ m/^=head1 OPTIONS/; my $file = $ENV{PO_FILE};
while ( defined(my $para = <>) ) { open my $fh, "<", $file or die "Cannot open $file: $!";
while ( defined(my $para = <$fh>) ) {
next unless $para =~ m/^=head1 OPTIONS/;
while ( defined(my $para = <$fh>) ) {
last if $para =~ m/^=head1/; last if $para =~ m/^=head1/;
chomp; chomp;
if ( $para =~ m/^=item --(\S+)/ ) { if ( $para =~ m/^=item --(\S+)/ ) {
@@ -229,7 +232,7 @@ _parse_pod() {
my $file = "$ENV{PO_DIR}/$opt"; my $file = "$ENV{PO_DIR}/$opt";
open my $opt_fh, ">", $file or die "Cannot open $file: $!"; open my $opt_fh, ">", $file or die "Cannot open $file: $!";
print $opt_fh "long:$opt\n"; print $opt_fh "long:$opt\n";
$para = <>; $para = <$fh>;
chomp; chomp;
if ( $para =~ m/^[a-z ]+:/ ) { if ( $para =~ m/^[a-z ]+:/ ) {
map { map {
@@ -237,7 +240,7 @@ _parse_pod() {
my ($attrib, $val) = split(/: /, $_); my ($attrib, $val) = split(/: /, $_);
print $opt_fh "$attrib:$val\n"; print $opt_fh "$attrib:$val\n";
} split(/; /, $para); } split(/; /, $para);
$para = <>; $para = <$fh>;
chomp; chomp;
} }
my ($desc) = $para =~ m/^([^?.]+)/; my ($desc) = $para =~ m/^([^?.]+)/;
@@ -246,6 +249,7 @@ _parse_pod() {
} }
} }
last; last;
}
' '
} }

View File

@@ -230,10 +230,13 @@ _parse_pod() {
# default=foo # default=foo
# That's the spec for --string-opt2. Each line is a key:value pair # That's the spec for --string-opt2. Each line is a key:value pair
# from the option's POD line like "type: string; default: foo". # from the option's POD line like "type: string; default: foo".
cat "$file" | PO_DIR="$PO_DIR" perl -ne ' PO_FILE="$file" PO_DIR="$PO_DIR" perl -e '
BEGIN { $/ = ""; } $/ = "";
next unless $_ =~ m/^=head1 OPTIONS/; my $file = $ENV{PO_FILE};
while ( defined(my $para = <>) ) { open my $fh, "<", $file or die "Cannot open $file: $!";
while ( defined(my $para = <$fh>) ) {
next unless $para =~ m/^=head1 OPTIONS/;
while ( defined(my $para = <$fh>) ) {
last if $para =~ m/^=head1/; last if $para =~ m/^=head1/;
chomp; chomp;
if ( $para =~ m/^=item --(\S+)/ ) { if ( $para =~ m/^=item --(\S+)/ ) {
@@ -241,7 +244,7 @@ _parse_pod() {
my $file = "$ENV{PO_DIR}/$opt"; my $file = "$ENV{PO_DIR}/$opt";
open my $opt_fh, ">", $file or die "Cannot open $file: $!"; open my $opt_fh, ">", $file or die "Cannot open $file: $!";
print $opt_fh "long:$opt\n"; print $opt_fh "long:$opt\n";
$para = <>; $para = <$fh>;
chomp; chomp;
if ( $para =~ m/^[a-z ]+:/ ) { if ( $para =~ m/^[a-z ]+:/ ) {
map { map {
@@ -249,7 +252,7 @@ _parse_pod() {
my ($attrib, $val) = split(/: /, $_); my ($attrib, $val) = split(/: /, $_);
print $opt_fh "$attrib:$val\n"; print $opt_fh "$attrib:$val\n";
} split(/; /, $para); } split(/; /, $para);
$para = <>; $para = <$fh>;
chomp; chomp;
} }
my ($desc) = $para =~ m/^([^?.]+)/; my ($desc) = $para =~ m/^([^?.]+)/;
@@ -258,6 +261,7 @@ _parse_pod() {
} }
} }
last; last;
}
' '
} }