summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/petri-nets
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-12-21 23:32:42 +0000
committerKarl Berry <karl@freefriends.org>2015-12-21 23:32:42 +0000
commitc5e89419297f1c23c42a0c11bab9fb3c12b97f91 (patch)
treefe216e80909f3182b6341572c282812791dc7e7b /Master/texmf-dist/doc/generic/petri-nets
parent3b683dc6d3ccfc16f1bdeb50e6d086143f119f72 (diff)
pn2pdf script for petri-nets (Enrico Gregorio mail, 21 Dec 2015 12:35:28)
git-svn-id: svn://tug.org/texlive/trunk@39165 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/generic/petri-nets')
-rw-r--r--Master/texmf-dist/doc/generic/petri-nets/pn2pdf211
1 files changed, 0 insertions, 211 deletions
diff --git a/Master/texmf-dist/doc/generic/petri-nets/pn2pdf b/Master/texmf-dist/doc/generic/petri-nets/pn2pdf
deleted file mode 100644
index c42f9c38f30..00000000000
--- a/Master/texmf-dist/doc/generic/petri-nets/pn2pdf
+++ /dev/null
@@ -1,211 +0,0 @@
-#!/usr/bin/perl
-
-## This file is part of the Petri-nets packages. See file README for
-## copyright notice.
-
-use strict;
-use Digest::MD5 qw(md5_hex);
-use Getopt::Long;
-
-##
-## read options
-##
-
-Getopt::Long::Configure ("bundling");
-
-my $keep = 0;
-my $force = 0;
-my $verbose = 0;
-
-GetOptions ("k|keep" => \$keep,
- "f|force" => \$force,
- "v|verbose" => \$verbose,
- "t|test" => \&Test,
- "d|delete" => \&Delete,
- "b|batch" => \&Batch,
- "h|help" => \&Help);
-
-&Help if scalar @ARGV > 1;
-
-##
-## Global variables
-##
-
-my $figure = shift @ARGV;
-my $basename = $figure; $basename =~ s/\.pn$//;
-my $jobname = $basename; $jobname =~ s/-fig\d+$//;
-my $data = "";
-my %sum;
-
-##
-## Load checksums
-##
-
-if (-f "$jobname.sum") {
- open SUM, "$jobname.sum"
- or &Error ("could not open $jobname.sum -- $!");
- while (<SUM>) {
- next unless /^(.+)\s+(.+)$/;
- $sum{$1} = $2;
- }
- close SUM;
-}
-
-##
-## Get preamble
-##
-
-if (-f "$jobname.pre") {
- # read the existing preamble
- my @lines;
- open PRE, "$jobname.pre"
- or &Error ("could not open $jobname.sum -- $!");
- @lines = <PRE>;
- close PRE;
- $data .= join "", @lines;
-} else {
- # create a new preamble
- open TEX, "$jobname.tex"
- or &Error ("could not open $jobname.tex -- $!");
- while (<TEX>) {
- $data .= $_;
- last if /\\begin\{document\}/;
- }
- close TEX;
- $data =~ s/(\\begin\{document\}).*$/$1\n/;
- $data .= "\\pagestyle\{empty\}\n";
- # save it
- open PRE, ">$jobname.pre"
- or &Error ("could not create $jobname.sum -- $!");
- print PRE $data;
- close PRE;
-}
-
-##
-## Read the figure
-##
-
-{
- my $pre = 1;
- open TEX, $figure or &Error ("could not open $figure -- $!");
- open PRE, ">>$jobname.pre"
- or &Error ("could not append $jobname.pre -- $!");
- while (<TEX>) {
- $pre = 0 if /^\\begin\{petrinet\}/;
- print PRE if $pre;
- $data .= $_;
- }
- close TEX;
- close PRE;
-}
-
-##
-## Generate the EPDF
-##
-
-if (&SumChanged ($figure, "$data") or $force or (! -f "$basename.pdf")) {
- open TEX, ">$basename.tex"
- or &Error ("could not create file $basename.tex -- $!\n");
- print TEX "$data\\end\{document\}\n";
- close TEX;
- system "latex", "$basename.tex";
- system "dvips", "-E", "-Ppdf", "-o", "$basename.eps", "$basename";
- system "epstopdf", "$basename.eps";
-}
-
-unlink ("$basename.tex", "$basename.log", "$basename.aux",
- "$basename.dvi", "$basename.eps", "$basename.pn") unless $keep;
-
-##
-## Save checksums
-##
-
-open SUM, ">$jobname.sum"
- or die "pn2pdf: could not create file $jobname.sum -- $!\n";
-foreach my $file (sort keys %sum) {
- print SUM "$file $sum{$file}\n";
-}
-close SUM;
-
-exit 0;
-
-##
-## Sub programs
-##
-
-sub Help {
- print <<"EOF";
-Usage: pn2pdf [OPTIONS]
-Create EPDF files for Petri net figures.
-
- FIGURE process FIGURE
- -b, --batch FILE process the commands in FILE
- -k, --keep keep temporary files
- -f, --force force the rendering of all pictures
- -t, --test FILES create FILES for test purpose
- -d, --delete FILES delete FILES (may be patterns)
- -h, --help display this help and exit
-
-Report bugs to <pommereau\@univ-paris12.fr>
-EOF
- exit 0; }
-
-sub Error {
- foreach my $line (@_) {
- warn "pn2pdf: $line\n";
- }
- exit 1;
-}
-
-sub Verbose {
- return unless $verbose;
- foreach my $line (@_) {
- warn "[pn2pdf] $line\n";
- }
-}
-
-sub SumChanged {
- my ($file, $lines) = @_;
- my $md5 = md5_hex ($lines);
- if ($md5 eq $sum{$file}) {
- return 0;
- } else {
- $sum{$file} = $md5;
- return 1;
- }
-}
-
-sub Test {
- foreach my $file (@ARGV) {
- open FILE, ">$file" or &Error ("could not create $file -- $!");
- close FILE;
- }
- exit 0;
-}
-
-sub Delete {
- foreach my $pattern (@ARGV) {
- unlink glob $pattern unless $keep;
- }
- exit 0;
-}
-
-sub Batch {
- my @lines;
- foreach my $file (@ARGV) {
- $file =~ s/(\.[a-z]{3})?$/.bpn/i;
- open FILE, $file or &Error ("could not open $file -- $!");
- while (<FILE>) {
- next unless /^pn2pdf\s/;
- s/^pn2pdf\s/pn2pdf --keep / if $keep;
- s/^pn2pdf\s/pn2pdf --force / if $force;
- s/^pn2pdf\s/pn2pdf --verbose / if $verbose;
- push @lines, $_;
- }
- close FILE;
- }
- foreach (@lines) {
- system $_;
- }
- exit 0;
-}