From 6872bafa52c57e346e46b05e434f9b30a94e519d Mon Sep 17 00:00:00 2001 From: fred Date: Wed, 27 Mar 2002 02:03:57 +0000 Subject: [PATCH] lilypond-1.5.19 --- VERSION | 2 +- scripts/ly2dvi.py | 221 +++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 208 insertions(+), 15 deletions(-) diff --git a/VERSION b/VERSION index af64987802..3403135ed7 100644 --- a/VERSION +++ b/VERSION @@ -1,7 +1,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=5 -PATCH_LEVEL=18 +PATCH_LEVEL=19 MY_PATCH_LEVEL= # use the above to send patches: MY_PATCH_LEVEL is always empty for a diff --git a/scripts/ly2dvi.py b/scripts/ly2dvi.py index eaceb590af..22a9a2245b 100644 --- a/scripts/ly2dvi.py +++ b/scripts/ly2dvi.py @@ -55,6 +55,9 @@ TODO: ''' + + + import os import stat import string @@ -67,19 +70,212 @@ import operator import tempfile import traceback -datadir = '' -if '@datadir@' == ('@' + 'datadir' + '@'): +################################################################ +# lilylib.py -- options and stuff +# +# source file of the GNU LilyPond music typesetter + +try: + import gettext + gettext.bindtextdomain ('lilypond', localedir) + gettext.textdomain ('lilypond') + _ = gettext.gettext +except: + def _ (s): + return s + +program_version = '@TOPLEVEL_VERSION@' +if program_version == '@' + 'TOPLEVEL_VERSION' + '@': + program_version = '1.5.17' + +def identify (): + sys.stdout.write ('%s (GNU LilyPond) %s\n' % (program_name, program_version)) + +def warranty (): + identify () + sys.stdout.write ('\n') + sys.stdout.write (_ ('Copyright (c) %s by' % ' 2001')) + sys.stdout.write ('\n') + sys.stdout.write (' Han-Wen Nienhuys') + sys.stdout.write (' Jan Nieuwenhuizen') + sys.stdout.write ('\n') + sys.stdout.write (_ (r''' +Distributed under terms of the GNU General Public License. It comes with +NO WARRANTY.''')) + sys.stdout.write ('\n') + +def progress (s): + errorport.write (s + '\n') + +def warning (s): + progress (_ ("warning: ") + s) + +def error (s): + + + '''Report the error S. Exit by raising an exception. Please + do not abuse by trying to catch this error. If you do not want + a stack trace, write to the output directly. + + RETURN VALUE + + None + + ''' + + progress (_ ("error: ") + s) + raise _ ("Exiting ... ") + +def getopt_args (opts): + '''Construct arguments (LONG, SHORT) for getopt from list of options.''' + short = '' + long = [] + for o in opts: + if o[1]: + short = short + o[1] + if o[0]: + short = short + ':' + if o[2]: + l = o[2] + if o[0]: + l = l + '=' + long.append (l) + return (short, long) + +def option_help_str (o): + '''Transform one option description (4-tuple ) into neatly formatted string''' + sh = ' ' + if o[1]: + sh = '-%s' % o[1] + + sep = ' ' + if o[1] and o[2]: + sep = ',' + + long = '' + if o[2]: + long= '--%s' % o[2] + + arg = '' + if o[0]: + if o[2]: + arg = '=' + arg = arg + o[0] + return ' ' + sh + sep + long + arg + + +def options_help_str (opts): + '''Convert a list of options into a neatly formatted string''' + w = 0 + strs =[] + helps = [] + + for o in opts: + s = option_help_str (o) + strs.append ((s, o[3])) + if len (s) > w: + w = len (s) + + str = '' + for s in strs: + str = str + '%s%s%s\n' % (s[0], ' ' * (w - len(s[0]) + 3), s[1]) + return str + +def help (): + ls = [(_ ("Usage: %s [OPTION]... FILE") % program_name), + ('\n\n'), + (help_summary), + ('\n\n'), + (_ ("Options:")), + ('\n'), + (options_help_str (option_definitions)), + ('\n\n'), + (_ ("Report bugs to %s") % 'bug-lilypond@gnu.org'), + ('\n')] + map (sys.stdout.write, ls) + +def setup_temp (): + """ + Create a temporary directory, and return its name. + """ + global temp_dir + if not keep_temp_dir_p: + temp_dir = tempfile.mktemp (program_name) + try: + os.mkdir (temp_dir, 0777) + except OSError: + pass + + return temp_dir + + +def system (cmd, ignore_error = 0): + """Run CMD. If IGNORE_ERROR is set, don't complain when CMD returns non zero. + + RETURN VALUE + + Exit status of CMD + """ + + if verbose_p: + progress (_ ("Invoking `%s\'") % cmd) + st = os.system (cmd) + if st: + name = re.match ('[ \t]*([^ \t]*)', cmd).group (1) + msg = name + ': ' + _ ("command exited with value %d") % st + if ignore_error: + warning (msg + ' ' + _ ("(ignored)") + ' ') + else: + error (msg) + + return st + + +def cleanup_temp (): + if not keep_temp_dir_p: + if verbose_p: + progress (_ ("Cleaning %s...") % temp_dir) + shutil.rmtree (temp_dir) + + +def strip_extension (f, ext): + (p, e) = os.path.splitext (f) + if e == ext: + e = '' + return p + e + +################################################################ +# END Library + + + + + + +# if set, LILYPONDPREFIX must take prevalence +# if datadir is not set, we're doing a build and LILYPONDPREFIX +datadir = '@datadir@' + + +if os.environ.has_key ('LILYPONDPREFIX') : +# huh ? this always leads to exception. +# or '@datadir@' == '@' + 'datadir' + '@': datadir = os.environ['LILYPONDPREFIX'] else: datadir = '@datadir@' + while datadir[-1] == os.sep: - datadir = datadir[:-1] + datadir= datadir[:-1] +program_name = 'ly2dvi' -sys.path.append (os.path.join (datadir, 'python')) -sys.path.append (os.path.join (datadir, 'buildscripts/out')) +original_dir = os.getcwd () +temp_dir = os.path.join (original_dir, '%s.dir' % program_name) +errorport = sys.stderr +keep_temp_dir_p = 0 +verbose_p = 0 try: import gettext @@ -99,8 +295,6 @@ try: except: pass -program_name = 'ly2dvi' -package_name = 'lilypond' help_summary = _ ("Generate .dvi with LaTeX for LilyPond") option_definitions = [ @@ -120,10 +314,6 @@ option_definitions = [ ('', 'w', 'warranty', _ ("show warranty and copyright")), ] -from lilylib import * - -# verbose_p = 1 # arg! - layout_fields = ['dedication', 'title', 'subtitle', 'subsubtitle', 'footer', 'head', 'composer', 'arranger', 'instrument', 'opus', 'piece', 'metre', 'meter', 'poet', 'texttranslator'] @@ -498,7 +688,7 @@ def find_pfa_fonts (name): return pfa -(sh, long) = getopt_args (__main__.option_definitions) +(sh, long) = getopt_args (option_definitions) try: (options, files) = getopt.getopt(sys.argv[1:], sh, long) except getopt.error, s: @@ -594,6 +784,9 @@ if files and files[0] != '-': # Ugh, maybe make a setup () function files = map (lambda x: strip_extension (x, '.ly'), files) + # hmmm. Wish I'd 've written comments when I wrote this. + # now it looks complicated. + (outdir, outbase) = ('','') if not output_name: outbase = os.path.basename (files[0]) @@ -606,8 +799,8 @@ if files and files[0] != '-': for i in ('.dvi', '.latex', '.ly', '.ps', '.tex'): output_name = strip_extension (output_name, i) - - files = map (abspath, files) + outbase = strip_extension (outbase, i) + files = map (abspath, files) if os.path.dirname (output_name) != '.': dep_prefix = os.path.dirname (output_name) -- 2.39.5