]> git.donarmstrong.com Git - lilypond.git/commitdiff
* scripts/convert-ly.py (bindir): use optparse, argv[0] relocation.
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 1 Mar 2006 16:28:44 +0000 (16:28 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 1 Mar 2006 16:28:44 +0000 (16:28 +0000)
* scripts/lilypond-book.py (find_file): use global_options for
include path

ChangeLog
scripts/convert-ly.py
scripts/lilypond-book.py

index 9edb5bdddd61bcaeb77deaf4d8534218edc0da63..2f0f84307af8dddeca632daa3007da4eadaa8927 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2006-03-01  Han-Wen Nienhuys  <hanwen@xs4all.nl>
 
+       * scripts/convert-ly.py (bindir): use optparse, argv[0] relocation.
+
        * scripts/lilypond-book.py (find_file): use global_options for
        include path
 
index d660dfd2011ab015e558dc21610deca620b84792..9e632e0ee0612c14dd9b0c67ccad1ca0c7b2fca3 100644 (file)
@@ -15,26 +15,32 @@ import sys
 import __main__
 import getopt
 import string
+import re
+
 
 datadir = '@local_lilypond_datadir@'
 if not os.path.isdir (datadir):
        datadir = '@lilypond_datadir@'
+
+sys.path.insert (0, os.path.join (datadir, 'python'))
+
 if os.environ.has_key ('LILYPONDPREFIX'):
        datadir = os.environ['LILYPONDPREFIX']
        while datadir[-1] == os.sep:
-               datadir = datadir[:-1]
-
-if os.path.exists (os.path.join (datadir, 'share/lilypond/@TOPLEVEL_VERSION@/')):
-       datadir = os.path.join (datadir, 'share/lilypond/@TOPLEVEL_VERSION@/')
-elif os.path.exists (os.path.join (datadir, 'share/lilypond/current/')):
-       datadir = os.path.join (datadir, 'share/lilypond/current/')
-
+               datadir= datadir[:-1]
+               
+       datadir = os.path.join (datadir, "share/lilypond/current/")
 sys.path.insert (0, os.path.join (datadir, 'python'))
 
+# dynamic relocation, for GUB binaries.
+bindir = os.path.split (sys.argv[0])[0]
+for p in ['share', 'lib']:
+       datadir = os.path.abspath (bindir + '/../%s/lilypond/current/python/' % p)
+       sys.path.insert (0, os.path.join (datadir))
+
 import lilylib as ly
 import fontextract
 global _;_=ly._
-global re;re = ly.re
 
 from convertrules import *
 
@@ -55,22 +61,51 @@ Examples:
 copyright = ('Jan Nieuwenhuizen <janneke@gnu.org>',
             'Han-Wen Nienhuys <hanwen@cs.uu.nl>')
 
-option_definitions = [
-       ('', 'e', 'edit',_('edit in place')),
-       (_('VERSION'), 'f', 'from',
-        _('start from VERSION [default: \\version found in file]')),
-       ('', 'h', 'help',_('print this help')),
-       ('',  'n', 'no-version',_ ('do not add \\version command if missing')),
-       ('','s', 'show-rules', _('print rules [default: --from=0, --to=@TOPLEVEL_VERSION@]')),
-       (_('VERSION'), 't', 'to',_('convert to VERSION [default: @TOPLEVEL_VERSION@]')),
-       ('','v','version',_('print program version"'))
-]      
-
 program_name = os.path.basename (sys.argv[0])
 program_version = '@TOPLEVEL_VERSION@'
 
 add_version = 1
 
+
+def get_option_parser ():
+       p = ly.get_option_parser (usage='lilypond-book [OPTIONS] FILE',
+                                 version="@TOPLEVEL_VERSION@",
+                                 description=help_summary)
+
+       p.add_option ('-f', '--from', 
+                     action="store",
+                     metavar=_ ("VERSION"),
+                     dest="from_version",
+                     help=_('start from VERSION [default: \\version found in file]'),
+                     default='')
+       
+       p.add_option ('-e', '--edit', help=_('edit in place'),
+                     action='store_true')
+       p.add_option ('-n', '--no-version',
+                     help=_ ('do not add \\version command if missing'),
+                     action='store_true',
+                     dest='skip_version_add',
+                     default=False)
+       
+       p.add_option ("-s", '--show-rules',
+                     help=_('print rules [default: --from=0, --to=@TOPLEVEL_VERSION@]'),
+                     action='store_true', default=False)
+       
+       p.add_option ('-t', '--to',
+                     help=_('convert to VERSION [default: @TOPLEVEL_VERSION@]'),
+                     metavar=_('VERSION'),
+                     action='store',
+                     dest="to_version",
+                     default='')
+
+       p.add_option_group  ('bugs',
+                            description='''Report bugs via http://post.gmane.org/post.php'''
+                            '''?group=gmane.comp.gnu.lilypond.bugs\n''')
+       
+       return p
+
+
+
 def str_to_tuple (s):
        return tuple (map (string.atoi, string.split (s, '.')))
 
@@ -145,21 +180,21 @@ def do_one_file (infile_name):
        sys.stderr.write (_ ("Processing `%s\'... ") % infile_name)
        sys.stderr.write ('\n')
        outfile_name = ''
-       if __main__.edit:
+       if global_options.edit:
                outfile_name = infile_name + '.NEW'
-       elif __main__.outfile_name:
-               outfile_name = __main__.outfile_name
+       elif global_options.outfile_name:
+               outfile_name = global_options.outfile_name
 
-       if __main__.from_version:
-               from_version = __main__.from_version
+       if global_options.from_version:
+               from_version = global_options.from_version
        else:
                guess = guess_lilypond_version (infile_name)
                if not guess:
                        raise UnknownVersion ()
                from_version = str_to_tuple (guess)
 
-       if __main__.to_version:
-               to_version = __main__.to_version
+       if global_options.to_version:
+               to_version = global_options.to_version
        else:
                to_version = latest_version ()
 
@@ -183,7 +218,7 @@ def do_one_file (infile_name):
                        
                error_file.write ('\n')                 
        
-               if __main__.edit:
+               if global_options.edit:
                        try:
                                os.remove(infile_name + '~')
                        except:
@@ -198,66 +233,36 @@ def do_one_file (infile_name):
 
        sys.stderr.flush ()
 
-edit = 0
-to_version = ()
-from_version = ()
-outfile_name = ''
-show_rules_p = 0
-
 def do_options ():
-       global from_version, to_version, edit, show_rules_p, add_version
+       opt_parser = get_option_parser()
+       (options, args) = opt_parser.parse_args ()
 
-       (sh, long) = ly.getopt_args (option_definitions)
-       try:
-               (options, files) = getopt.getopt (sys.argv[1:], sh, long)
-       except getopt.error, s:
-               sys.stderr.write ('\n')
-               ly.error (_ ("getopt says: `%s'" % s))
-               sys.stderr.write ('\n')
-               ly.help ()
-               ly.exit (2)
-
-       for opt in options:
-               o = opt[0]
-               a = opt[1]
-
-               if o == '--help' or o == '-h':
-                       ly.help ()
-                       sys.exit (0)
-               elif o == '--version' or o == '-v':
-                       ly.identify (sys.stdout)
-                       sys.exit (0)
-               elif o== '--from' or o=='-f':
-                       from_version = str_to_tuple (a)
-               elif o== '--to' or o=='-t':
-                       to_version = str_to_tuple (a)
-               elif o== '--edit' or o == '-e':
-                       edit = 1
-               elif o== '--show-rules' or o == '-s':
-                       show_rules_p = 1
-               elif o == '--no-version' or o == '-n':
-                       add_version = 0
-               else:
-                       print o
-                       raise getopt.error
 
-       return files
+       if options.from_version:
+               options.from_version = str_to_tuple (options.from_version)
+       if options.to_version:
+               options.to_version = str_to_tuple (options.to_version)
+
+       options.outfile_name = ''
+       global global_options
+       global_options = options
+
+       if not args:
+               opt_parser.print_help ()
+               sys.exit (2)
 
+       return args
 
 def main ():
        files = do_options ()
 
        # should parse files[] to read \version?
-       if show_rules_p:
+       if global_options.show_rules:
                show_rules (sys.stdout, from_version, to_version)
                sys.exit (0)
 
        ly.identify (sys.stderr)
 
-       if not files:
-               ly.help ()
-               sys.exit (2)
-
        for f in files:
                if f == '-':
                        f = ''
index d5763fb182fbc2f9f764819a2aa4e2bf00578e18..460e74eb2ece36e53115b554b04851c09382aa46 100644 (file)
@@ -69,7 +69,7 @@ sys.path.insert (0, os.path.join (datadir, 'python'))
 # dynamic relocation, for GUB binaries.
 bindir = os.path.split (sys.argv[0])[0]
 for p in ['share', 'lib']:
-       datadir = os.path.abspath (bindir + '../%s/lilypond/current/python/' % p)
+       datadir = os.path.abspath (bindir + '/../%s/lilypond/current/python/' % p)
        sys.path.insert (0, os.path.join (datadir))