Blob Blame History Raw
diff -pruN man-pages-ja-20091215.orig/script/configure.perl man-pages-ja-20091215/script/configure.perl
--- man-pages-ja-20091215.orig/script/configure.perl	2002-08-31 04:27:01.000000000 +0900
+++ man-pages-ja-20091215/script/configure.perl	2009-12-24 15:09:50.000000000 +0900
@@ -1,4 +1,5 @@
 #!/usr/bin/perl
+use IO::Handle;
 use Env qw (PATH LANG);
 use strict 'vars';
 
@@ -11,6 +12,13 @@ my ($MANROOT, $PACK, $OWNER, $GROUP,
 my $PKGLIST = "script/pkgs.list";
 my @pack_method = ("none", "gzip", "bzip2", "compress");
 my $podsec = "1";
+my @stdin;
+my $pipeflag = 0;
+
+if ( -p STDIN ) {
+    $pipeflag = 1;
+    @stdin = STDIN->getlines;
+}
 
 #
 # インストール情報
@@ -21,7 +29,7 @@ print "(just Return if you accept defaul
 do{
     $MANROOT = "/usr/share/man/$LANG";
     print "   Install directory   [$MANROOT] ?: ";
-    $ans = <STDIN>; chomp $ans;
+    $ans = &get_from_stdin; chomp $ans;
     if ($ans ne "") {$MANROOT = $ans;}
 
     print "   compress manual with..\n";
@@ -29,19 +37,19 @@ do{
 	print "      $i: $pack_method[$i]\n";
     }
     print "   select [0..$#pack_method] : ";
-    $ans = <STDIN>; chomp $ans;
+    $ans = &get_from_stdin; chomp $ans;
     if  ($ans eq "") {$ans = 0;}
     if ($ans < 0 || $ans > $#pack_method) {$PACK = $pack_method[0]}
     else {$PACK = $pack_method[$ans]}
 
     $OWNER = "root";
     print "   uname of page owner [$OWNER] ?: ";
-    $ans = <STDIN>; chomp $ans;
+    $ans = &get_from_stdin; chomp $ans;
     if ($ans ne "") {$OWNER = $ans;}
 
     $GROUP = "root";
     print "   group of page owner [$GROUP] ?: ";
-    $ans = <STDIN>; chomp $ans;
+    $ans = &get_from_stdin; chomp $ans;
     if ($ans ne "") {$GROUP = $ans;}
 
     print "\n";
@@ -51,7 +59,7 @@ do{
     print "\n";
     do {
 	print "All OK? (Yes, [C]ontinue / No, [R]eselect) : ";
-	$ans = <STDIN>; chomp $ans;
+	$ans = &get_from_stdin; chomp $ans;
     } until ($ans =~ /^[yYnNcCrR]/);
 
 } until ($ans =~ /^[yYcC]/);
@@ -90,14 +98,14 @@ do{
     for $i (0 .. $#pl){
 	my $qstr = ($main::pw{$pl[$i]} > -1) ? "[Y/n]" : "[y/N]";
 	printf "   [%2d/%2d] %-15s %s ?: ", $i, $#pl, $pl[$i], $qstr;
-	$ans = <STDIN>; chomp $ans;
+	$ans = &get_from_stdin; chomp $ans;
 	if ($ans =~ /[Yy].*/) { $main::pw{$pl[$i]} = $i;}
 	if ($ans =~ /[Nn].*/) { $main::pw{$pl[$i]} = -1;}
     }
 
     do {
 	print "All OK? (Yes, [C]ontinue / No, [R]eselect) : ";
-	$ans = <STDIN>; chomp $ans;
+	$ans = &get_from_stdin; chomp $ans;
     } until ($ans =~ /[yYnNcCrR].*/);
 
 } until ($ans =~ /^[yYcC]/);
@@ -111,6 +119,7 @@ while(<TL>) {
     chomp;
     my @l = split /:/;
     $l[1] =~ s/ /_/e;
+    unless (exists $main::pw{$l[1]} && defined $main::pw{$l[1]}) {die "Missing `$l[1]' in pkg.list";}
     if ($main::pw{$l[1]} == -1) {next;}
     (my $sec, my $osec) =  split /=>/, $l[5];
     if ($sec eq "pod"){$sec = $podsec;}
@@ -161,7 +170,7 @@ do{
 	}
 	print "   Which to install? (0..$cf) : ";
 
-	$ans = <STDIN>; chomp $ans;
+	$ans = &get_from_stdin; chomp $ans;
 	if ($ans eq "") {$ans = 0};
 	if ($ans < 0 || $ans > $cf) { $ans = 0 };
 
@@ -176,7 +185,7 @@ do{
 
     do {
 	print "All OK? (Yes, [C]ontinue / No, [R]eselect) : ";
-	$ans = <STDIN>; chomp $ans;
+	$ans = &get_from_stdin; chomp $ans;
     } until ($ans =~ /^[yYnNcCrR]/);
 
 } until ($ans =~ /^[yYcC]/);
@@ -191,10 +200,8 @@ open (ISS, ">installman.sh") || die "can
 print ISS "#!/bin/sh\n";
 
 print ISS "mkdir -p $MANROOT;";
-print ISS "chown $OWNER.$GROUP $MANROOT\n";
 for $i (1..9){
     print ISS "mkdir -p $MANROOT/man$i;";
-    print ISS "chown $OWNER.$GROUP $MANROOT/man$i\n";
 }
 print ISS "\n";
 
@@ -205,7 +212,10 @@ foreach my $key (sort keys %ppage) {
     my $mandst = "$MANROOT/man$sec";
 
     print ISS "echo -n install $pkg: $name.$sec .. \n";
-    print ISS "install -o $OWNER -g $GROUP -m 644 $mansrc $mandst\n";
+    print ISS "install -p -m 644 $mansrc $mandst\n";
+
+    print ISS "echo -n converting to UTF-8 .. \n";
+    print ISS "iconv -f euc-jp -t utf-8 $mandst/$name.$sec > $mandst/$name.$sec.tmp && mv $mandst/$name.$sec.tmp $mandst/$name.$sec || exit 1\n";
 
     if ($PACK ne "none"){
 	print ISS "echo -n $PACK .. \n";
@@ -231,3 +241,14 @@ sub by_sec_name {
 	($af[2] <=> $bf[2]) || ($af[1] cmp $bf[1]);
 }
 
+sub get_from_stdin {
+    my $retval;
+
+    if ( $pipeflag ) {
+        $retval = shift (@stdin);
+    } else {
+        $retval = scalar (<STDIN>);
+    }
+    return $retval;
+}
+