From: Norman Walsh Date: Thu, 15 Nov 2001 14:52:11 +0000 (+0000) Subject: Tool for distributing the DTD X-Git-Tag: release/1.79.1~6^2~6122 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d39939c9e97f9eecdd724b75e5fea1518c4a9aa6;p=docbook-dsssl Tool for distributing the DTD --- diff --git a/cvstools/Makefile.incl b/cvstools/Makefile.incl index 54651cc19..41a966abe 100644 --- a/cvstools/Makefile.incl +++ b/cvstools/Makefile.incl @@ -11,3 +11,4 @@ XJPARSE=$(CVSTOOLSROOT)/xjparse XNSGMLS=xnsgmls XSLT=$(CVSTOOLSROOT)/xslt XSLTOPT= +DTDDISTRIB=$(CVSTOOLSROOT)/dtd-distrib diff --git a/cvstools/dtd-distrib b/cvstools/dtd-distrib new file mode 100755 index 000000000..74ec09467 --- /dev/null +++ b/cvstools/dtd-distrib @@ -0,0 +1,95 @@ +#!/usr/bin/perl -- # -*- Perl -*- + +use strict; +use Getopt::Std; +use vars qw($opt_v $opt_n $opt_d); + +select STDOUT; $| = 1; + +my $usage = "Usage: $0 [-d] [-v version] [-n newversion]\n"; + +die $usage if ! getopts('dv:n:'); +my $oldversion = $opt_v || undef; +my $newversion = $opt_n || undef; + +die $usage if !$oldversion || !$newversion; + +die "You must be in the DocBook DTD directory.\n" + unless -f "docbook.dtd" || -f "docbookx.dtd"; + +my @cvsbad = `cvs -n update 2>&1 | grep -v ^cvs`; +if (@cvsbad) { + print STDERR @cvsbad; + die "CVS is not up-to-date!\n"; +} + +my $xml = -f "docbookx.dtd"; +my $distribdir = "docbook-$newversion"; +$distribdir = "docbook-xml-$newversion" if $xml; +my $distribroot = "/tmp/$distribdir"; + +if ($opt_d) { + print "Making distribution for $newversion\n"; + system("rm -rf $distribroot"); + mkdir($distribroot, 0755) || die "Failed to create $distribroot.\n"; +} else { + print "Changing $oldversion to $newversion\n"; +} + +opendir (DIR, "."); +while (my $name = readdir(DIR)) { + next if -d $name; + next if $name =~ /\~$/; + next if $name eq '.cvsignore'; + next if $name eq 'Makefile'; + next if $name =~ /^test\./; + my $file = $name; + + open (F, $file); + read (F, $_, -s $file); + close (F); + + my $newfile = $file; + $newfile = "$distribroot/$name" if $opt_d; + + s/$oldversion/$newversion/sg; + + open (F, ">$newfile"); + print F $_; + close (F); +} +closedir (DIR); + +if ($opt_d && !$xml) { + opendir (DIR, "../xml"); + while (my $name = readdir(DIR)) { + next if -d $name; + next if $name =~ /\~$/; + next if $name eq '.cvsignore'; + next if $name eq 'Makefile'; + next if $name =~ /^test\./; + my $file = "../xml/$name"; + + open (F, $file); + read (F, $_, -s $file); + close (F); + + my $newfile = $file; + $newfile = "$distribroot/$name" if $opt_d; + + s/$oldversion/$newversion/sg; + + if (! -f $newfile) { + open (F, ">$newfile"); + print F $_; + close (F); + } + } + closedir (DIR); +} + +if ($opt_d) { + chdir ("/tmp"); + system ("tar cf - $distribdir | gzip > $distribdir.tar.gz"); + system ("zip -rpD $distribdir.zip $distribdir"); +}