mirror of https://github.com/tLDP/LDP
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
170 lines
4.3 KiB
170 lines
4.3 KiB
#!/usr/bin/perl |
|
# |
|
# ldp_cp <file_without_extension> |
|
# |
|
# copy all various output forms needed for the LDP to respective locations |
|
# |
|
if($ARGV[0] eq '') { |
|
die "\nusage: $0 <file_without_extension>\n"; |
|
} |
|
|
|
my($cmd, $dtd, $f, $base) = ''; |
|
my($linuxdoc) = 0; |
|
|
|
$base = '/public/ftp/pub/linux/docs/HOWTO'; |
|
$base_html = '/public/html/LDP/HOWTO'; |
|
|
|
$f = $ARGV[0]; |
|
if( $f =~ /\.[\w]+ml$/ ) { |
|
$f =~ s/\.[\w]+$//; |
|
} |
|
|
|
# determine DTD |
|
# |
|
my($fname) = ''; |
|
if( -e "$f.sgml" ) { |
|
$fname = "$f.sgml"; |
|
} elsif( -e "$f.xml" ) { |
|
$fname = "$f.xml"; |
|
} |
|
|
|
open(FP_IN, "head -100 $fname | grep -i '\!doctype' |") || |
|
die "ldp_cp: cannot determine DTD for $fname\n"; |
|
$cmd = <FP_IN>; |
|
close(FP_IN); |
|
if( $cmd eq '' ) { |
|
die "ldp_cp: cannot determine DTD for $f\n"; |
|
} |
|
if( $cmd =~ /linuxdoc/i ) { |
|
$linuxdoc = 1; |
|
} |
|
if( $cmd =~ /\ xml\ /i ) { |
|
$dtd = 'xml'; |
|
} else { |
|
$dtd = 'sgml'; |
|
} |
|
|
|
|
|
# copy PLAIN TEXT version |
|
# |
|
if( -e "$f.txt" ) { |
|
$cmd = "cp -f $f.txt $base/$f; chmod 664 $base/$f; chgrp ldp $base/$f"; |
|
print "$0: $f $base\n"; |
|
system($cmd); |
|
|
|
$cmd = "cp -f $f.txt $base_html/text/$f; " . |
|
"chmod 664 $base_html/text/$f; " . |
|
"chgrp ldp $base_html/text/$f"; |
|
system($cmd); |
|
} |
|
|
|
# copy HTML version |
|
# |
|
if( -e "$f-html.tar.gz" ) { |
|
$cmd = "cp -f $f-html.tar.gz $base/other-formats/html; " . |
|
"chmod 664 $base/other-formats/html/$f-html.tar.gz; " . |
|
"chgrp ldp $base/other-formats/html/$f-html.tar.gz"; |
|
print "$0: $f-html.tar.gz $base/other-formats/html\n"; |
|
system($cmd); |
|
} |
|
if( (-e "$f.html" && $linuxdoc == 1) |
|
|| |
|
(-d "$f" && $linuxdoc == 0) ) { |
|
|
|
if( $linuxdoc == 1 ) { |
|
$cmd = "cp -f $f\*.html $base_html; " . |
|
"chmod 664 $base_html/$f\*.html; " . |
|
"chgrp ldp $base_html/$f\*.html"; |
|
} else { |
|
if( -d "$base_html/$f" ) { |
|
system("rm -f $base_html/$f/\*.html"); |
|
} |
|
$cmd = "cp -rf $f $base_html; " . |
|
"chmod 775 $base_html/$f; " . |
|
"chmod 664 $base_html/$f/\*.html; " . |
|
"chgrp -R ldp $base_html/$f"; |
|
} |
|
print "$0: $base_html\n"; |
|
system($cmd); |
|
} |
|
|
|
# copy single HTML version |
|
# |
|
if( -e "00_$f.html" ) { |
|
$cmd = "cp -f 00_" . "$f.html $base/other-formats/html_single/$f.html; " . |
|
"chmod 664 $base/other-formats/html_single/$f.html; " . |
|
"chgrp ldp $base/other-formats/html_single/$f.html"; |
|
print "$0: $f.html $base/other-formats/html_single\n"; |
|
system($cmd); |
|
|
|
$cmd = "mkdir $base_html/html_single/$f; " . |
|
"cp -f 00_" . "$f.html $base_html/html_single/$f/index.html; " . |
|
"chmod 775 $base_html/html_single/$f/; " . |
|
"chmod 664 $base_html/html_single/$f/index.html; " . |
|
"chgrp -R ldp $base_html/html_single/$f/"; |
|
system($cmd); |
|
} |
|
|
|
|
|
# copy PDF version |
|
# |
|
if( -e "$f.pdf" ) { |
|
$cmd = "cp -f $f.pdf $base/other-formats/pdf; " . |
|
"chmod 664 $base/other-formats/pdf/$f.pdf; " . |
|
"chgrp ldp $base/other-formats/pdf/$f.pdf"; |
|
print "$0: $f.pdf $base/other-formats/pdf\n"; |
|
system($cmd); |
|
} |
|
|
|
# copy PS version |
|
# |
|
if( -e "$f.ps.gz" ) { |
|
$cmd = "cp -f $f.ps.gz $base/other-formats/ps; " . |
|
"chmod 664 $base/other-formats/ps/$f.ps.gz; " . |
|
"chgrp ldp $base/other-formats/ps/$f.ps.gz"; |
|
print "$0: $f.ps.gz $base/other-formats/ps\n"; |
|
system($cmd); |
|
} |
|
|
|
# copy source version |
|
# |
|
if( -e "$f.${dtd}.gz" ) { |
|
|
|
my($ext) = ''; |
|
if( $linuxdoc == 1 ) { |
|
$ext = 'sgml'; |
|
} else { |
|
$ext = 'docbook'; |
|
} |
|
|
|
$cmd = "cp -f $f.${dtd}.gz $base/other-formats/$ext; " . |
|
"chmod 664 $base/other-formats/$ext/$f.${dtd}.gz; " . |
|
"chgrp ldp $base/other-formats/$ext/$f.${dtd}.gz"; |
|
print "$0: $f.${dtd}.gz $base/other-formats/$ext\n"; |
|
system($cmd); |
|
|
|
# docbook SGML generated from linuxdoc |
|
# |
|
if( $linuxdoc == 1 && (-e "DB_$f.sgml.gz") ) { |
|
$ext = 'docbook'; |
|
$cmd = "cp -f DB_$f.sgml.gz $base/other-formats/$ext/$f.sgml.gz; " . |
|
"chmod 664 $base/other-formats/$ext/$f.sgml.gz; " . |
|
"chgrp ldp $base/other-formats/$ext/$f.sgml.gz"; |
|
system($cmd); |
|
} |
|
} |
|
|
|
|
|
# for announce msg |
|
# |
|
print "\n"; |
|
if( $linuxdoc == 1 ) { |
|
system("head -5 $f.txt"); |
|
} else { |
|
system("head -12 $f.txt"); |
|
} |
|
print "\n * updated\n http://tldp.org/HOWTO/" . |
|
($linuxdoc == 1 ? "$f.html" : "$f/"), "\n\n"; |
|
|
|
exit(0); |
|
|
|
|