summaryrefslogtreecommitdiff
path: root/Build/source/texk/gregorio/gregorio-4.0.0-beta2/contrib/gprocess
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/gregorio/gregorio-4.0.0-beta2/contrib/gprocess')
-rwxr-xr-xBuild/source/texk/gregorio/gregorio-4.0.0-beta2/contrib/gprocess209
1 files changed, 209 insertions, 0 deletions
diff --git a/Build/source/texk/gregorio/gregorio-4.0.0-beta2/contrib/gprocess b/Build/source/texk/gregorio/gregorio-4.0.0-beta2/contrib/gprocess
new file mode 100755
index 00000000000..91f603e4db0
--- /dev/null
+++ b/Build/source/texk/gregorio/gregorio-4.0.0-beta2/contrib/gprocess
@@ -0,0 +1,209 @@
+#!/usr/bin/perl
+
+# gprocess
+# a script for 'compiling' gregorio gabc music files
+# v0.2
+# Copyright (c) 2010 Richard Chonak <chonak@yahoo.com>
+# Changes in v0.2:
+# -- change list of PDF viewers
+# -- invoke LuaLateX instead of lamed/dvipdfm
+# -- drop use of pdftk (it's not available for my system)
+# -- use latin1 character set instead of utf8
+# -- update macro and variable names (with "gre" prefix) as needed
+# -- add 'redlines'
+# --
+#
+# v0.1
+# Copyright (C) 2008 Richard Chonak <chonak@yahoo.com>
+#
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+use strict;
+
+## USER-MODIFIABLE COMMAND PATHS
+
+# search for a PDF viewer among these file paths; take the first
+my @PDFVIEWERS = grep { -e $_ && -x $_ }
+ ("/usr/bin/kpdf","/usr/bin/okular","/usr/local/bin/acroread","/usr/bin/acroread");
+my $PDFVIEWER = $PDFVIEWERS[0];
+
+my $TEXCOMPILER = "lualatex";
+
+## END OF USER-MODIFIABLE COMMAND PATHS
+
+
+# print usage string if no command-line arg specified
+
+if ($#ARGV < 0) {
+ die "usage: $0 <gabc-file-name>\n";
+}
+
+
+my $GABCFILE = $ARGV[0];
+my $SCORENAME;
+my $ANNOTATION;
+my $REFERENCE;
+my $OFFICEPART;
+my $NAMEFOUND = 0;
+my $KEEPSEARCHING = 1;
+my $INLINE = "";
+
+
+my $SCORETEXFILE = $GABCFILE;
+$SCORETEXFILE =~ s/gabc$/tex/;
+
+my $SCOREWRAPTEX = $SCORETEXFILE;
+$SCOREWRAPTEX =~ s/.tex$/-main.tex/;
+
+#### GET THE SCORE TITLE FROM THE GABC FILE ####
+
+if ($GABCFILE =~ m#/#) {
+ die "File spec must not contain slashes: $GABCFILE\n";
+};
+
+
+open (GABC,"<".$GABCFILE) or die "No such file: $GABCFILE\n";
+while ($KEEPSEARCHING == 1 && ($INLINE = <GABC>)) {
+ if ($INLINE =~ /^name/) {
+ $SCORENAME = $INLINE;
+ $SCORENAME =~ s/^.*:\s*//;
+ $SCORENAME =~ s/\s*;\s*$//;
+ };
+ if ($INLINE =~ /^anotation/) {
+ $ANNOTATION = $INLINE;
+ $ANNOTATION =~ s/^.*:\s*//;
+ $ANNOTATION =~ s/\s*;\s*$//;
+ };
+ if ($INLINE =~ /^reference/) {
+ $REFERENCE = $INLINE;
+ $REFERENCE =~ s/^.*:\s*//;
+ $REFERENCE =~ s/\s*;\s*$//;
+ };
+ if ($INLINE =~ /^office-part/) {
+ $OFFICEPART = $INLINE;
+ $OFFICEPART =~ s/^.*:\s*//;
+ $OFFICEPART =~ s/\s*;\s*$//;
+ };
+ if ($INLINE =~ /^%%/) { $KEEPSEARCHING = 0; }
+}
+
+close (GABC);
+
+
+
+#### READ IN THE TEMPLATE ####
+
+my @TEMPLATELINES;
+
+
+@TEMPLATELINES = <DATA>;
+
+
+
+#### MAKE SUBSTITUTIONS ####
+
+&do_subst ("XXXX-SCORENAME-XXXX", $SCORENAME);
+&do_subst ("XXXX-SCORETEXFILE-XXXX", $SCORETEXFILE);
+&do_subst ("XXXX-ANNOTATION-XXXX", $ANNOTATION);
+&do_subst ("XXXX-OFFICEPART-XXXX", $OFFICEPART);
+&do_subst ("XXXX-REFERENCE-XXXX", $REFERENCE);
+
+foreach (@TEMPLATELINES){
+ s/^.*XXXX.*$//;
+};
+
+#### WRITE TEX WRAPPER FILE ####
+
+open (TEXWRAP,">".$SCOREWRAPTEX) or die "Cannot write file $SCOREWRAPTEX\n";
+print TEXWRAP @TEMPLATELINES;
+close (TEXWRAP);
+
+#### RUN GREGORIO, LATEX, AND KPDF ####
+my $PDFFILE = $SCOREWRAPTEX;
+$PDFFILE =~ s/tex$/pdf/;
+my $AUXFILE = $SCOREWRAPTEX;
+$AUXFILE =~ s/tex$/aux/;
+my $GAUXFILE = $SCOREWRAPTEX;
+$GAUXFILE =~ s/tex$/gaux/;
+
+# remove product files so that we don't accidentally view results
+# from a prior run
+unlink $SCORETEXFILE;
+unlink $PDFFILE;
+
+
+do_cmd("gregorio $GABCFILE");
+do_cmd("$TEXCOMPILER $SCOREWRAPTEX");
+unlink $AUXFILE;
+unlink $GAUXFILE;
+
+print "\n\nOutput is in $PDFFILE .\n";
+do_cmd ("$PDFVIEWER $PDFFILE");
+
+
+exit;
+
+sub do_subst {
+ my $TAG = $_[0];
+ my $VAL = $_[1];
+
+ foreach (@TEMPLATELINES) {
+ s/$TAG/$VAL/g;
+ }
+};
+
+sub do_cmd {
+ my $CMD = $_[0];
+#debugging print "Doing command: \n $CMD\n\n";
+ system ($CMD) == 0
+ or die "\n\nSystem command failed: $CMD : $?\n";
+};
+
+
+# THE LINES AFTER THIS "END" TAG ARE A TEMPLATE FOR THE TEX FILE TO BE GENERATED
+__END__
+
+\documentclass[12pt, letterpaper]{article}
+\usepackage{fullpage}
+\usepackage[T1]{fontenc}
+\usepackage[utf8]{luainputenc}
+\usepackage{palatino}
+\usepackage{gregoriotex}
+\usepackage{color}
+\usepackage{ifthen}
+\pagestyle{empty}
+\begin{document}
+\redlines
+
+\begin{center}\begin{huge}\textsc{XXXX-SCORENAME-XXXX}\end{huge}\end{center}
+
+\setspaceafterinitial{3.2mm plus 0em minus 0em}
+\setspacebeforeinitial{3.2mm plus 0em minus 0em}
+
+\def\greinitialformat#1{%
+{\fontsize{43}{43}\selectfont #1}%
+}
+
+\gresetfirstlineaboveinitial{\small \textsc{\textbf{XXXX-ANNOTATION-XXXX}}}{\small \textsc{\textbf{XXXX-ANNOTATION-XXXX}}}
+\commentary{{\small \emph{XXXX-REFERENCE-XXXX}}}
+
+\setgrefactor{17}
+\grespaceabovelines=5mm
+\includescore{XXXX-SCORETEXFILE-XXXX}
+
+\end{document}
+
+