10 # do something, check return status
14 foreach $cmd (@cmds) {
18 $cmd = substr ($cmd, 1);
21 my $ret = ( system ($cmd));
24 print STDERR
"ignoring failed command \`$cmd\' (status $ret)\n";
26 print STDERR
"\nmudela-book: failed on command \`$cmd\' (status $ret)\n";
34 return "$outdir/$outname$mudcount.ly";
39 return "$outname$mudcount.tex";
43 return "$outdir/" . gen_texbase
;
50 print MUDELA
"}\n \\paper { linewidth = -1.0\\cm;";
51 print MUDELA
"castingalgorithm = \\Wordwrap; } }\n";
55 print BOOK
"\\end{verbatim}";
58 print BOOK
"\\end{minipage}";
61 print BOOK
"\\interexample";
66 if ( -f gen_mufile
) {
67 $status = system "diff -q $outdir/book-mudela.ly " . gen_mufile
;
72 rename "$outdir/book-mudela.ly", gen_mufile
;
76 if ( ! -f gen_texfile
) {
77 my_system
"lilypond ". gen_mufile
;
78 rename gen_texbase
, gen_texfile
;
82 print BOOK
"\\begin{minipage}[c]{.5\\textwidth}\n";
84 print BOOK
"\\input " . gen_texfile
. "\n";
86 print BOOK
"\\end{minipage}";
89 print BOOK
"\\postexample%\n";
96 open MUDELA
, ">$outdir/book-mudela.ly";
97 print BOOK
"\\preexample%\n";
98 print MUDELA
"\\include \"paper16.ly\"\n";
100 print BOOK
"\\begin{minipage}[c]{.5\\textwidth}\n";
101 print MUDELA
"default_paper = \\paper { \\paper_sixteen ";
102 print MUDELA
"linewidth = 7.\\cm;}";
105 print BOOK
"\\begin{verbatim}\n";
108 print MUDELA
"\\score { \\melodic { ";
110 print MUDELA
"default_paper = \\paper { \\paper_sixteen ";
111 print MUDELA
"linewidth = 15.\\cm;}";
120 return (/^\\begin{$s}/) ;
126 return (/^\\end{$s}/) ;
128 sub parse_mudela_opts
133 $verbatim_b =1 if ($s =~ /verbatim/ );
134 $fragment_b = 1 if ($s =~ /fragment/ );
135 $center_b = 1 if ($s =~ /center/ );
140 print "usage: convert-mudela [options] [file]
143 --outdir=DIRECTORY write all files in directory DIRECTORY
144 --outname=NAME use NAME as base for the output
151 GetOptions
( 'outdir=s', 'outname=s', 'help');
154 $opt_help = 0; # to extinguish typo check. brr, what a language
157 if (defined ($opt_outdir)) {
158 $outdir = $opt_outdir . "/";
163 if (defined ($ARGV[0])) {
168 if (defined ($opt_outname)) {
169 $outname = $opt_outname ;
171 die "Need to have an output name, use --outname" if ( $infile eq "-");
172 $outname = "$infile.tex";
175 my $openout ="$outdir$outname";
176 if ( $infile eq $openout ) {
177 die "The input can't be the output\n";
180 open INFILE
, "<$infile" or die "Can't open $infile\n";
181 open BOOK
, ">$openout" or die "Can't open $openout\n";;
184 if (end_b
"mudela") {
191 $s =~ s/\t/ /g; #shit
196 if (/^\\begin{mudela}(\[.*\])?/ ) {
198 $opts = $1 if ( defined ($1));
200 parse_mudela_opts
($opts);