Exemplo n.º 1
0
    def main(self):
        onlyhelp = not self.parse_cmdline()

        def _do():
            """real action"""
            if not self.cfgfile:
                self.cfgfile = self.ensurecf('lprc')
            if not self.urlcfgfile:
                self.urlcfgfile = self.ensurecf('lpurlrc')

            if onlyhelp:
                self.print_usage()
                sys.exit(0)

            if self.publish is not None:
                # if need to publish...
                engine = lp.Lp(cfgfile=self.cfgfile,
                               urlcfgfile=self.urlcfgfile,
                               quiet=self.quiet,
                               outdir=self.outdir)
                parser = lp.Parser.create_parser(engine,
                                                 self.input_file,
                                                 fmt=self.fmt)
                parser.parsefile(self.input_file, flush=False)
                pub = lp.Publisher(parser, baseurl=self.publish)
                pub.publish(self.input_file)
            else:
                engine = lp.Lp(cfgfile=self.cfgfile,
                               urlcfgfile=self.urlcfgfile,
                               quiet=self.quiet,
                               outdir=self.outdir)
                parser = lp.Parser.create_parser(engine,
                                                 self.input_file,
                                                 fmt=self.fmt)
                parser.parsefile(self.input_file)

            if self.refs:
                # if need to flush references...
                fn = os.path.split(self.input_file)[1]
                fn = fn.upper()
                refsfile = lp.RefsFile(parser, "%s: references" % fn)
                refsfile.save()

        if self.tb:
            _do()
        else:
            try:
                _do()
            except Exception as x:
                lp.prn("ERROR '%s': %s" % (x.__class__.__name__, str(x)),
                       file='stderr',
                       quiet=self.quiet)
                sys.exit(1)
Exemplo n.º 2
0
    def print_usage(self):
        def parser_info(cls):
            ext = '%s' % ', '.join(cls.ext)
            return '   %s - %s: %s' % (cls.__name__, cls.descr
                                       or 'Unknown', ext)

        def cmd_info(cls):
            return '   %s - %s' % (cls.__name__, cls.descr or 'Unknown')

        def fetcher_info(cls):
            return '   %s - %s' % (cls.__name__, cls.descr or 'Unknown')

        formats = [parser_info(p) for p in lp.Parser.parsers]
        formats = '\n'.join(formats)
        commands = [cmd_info(c) for c in lp.Cmd.commands]
        commands = '\n'.join(commands)
        fetchers = [fetcher_info(c) for c in lp.Vfile.vfiles]
        fetchers = '\n'.join(fetchers)

        if self.cfgfile or self.urlcfgfile:
            cfginfo = "Setup from: '%s', '%s'" % (self.cfgfile,
                                                  self.urlcfgfile)
        else:
            cfginfo = ''

        USAGE = '''\
%s
Syntax: -i FILE [-f FMT] [-c CFG] [-u URLCFG] [-o DIR] [-x] [-r] [-p URL] [-q]
[-h]
   -i FILE      Input file or URL
   -f FMT       Force format (extension)
   -c CFG       Path to configuration file
   -u URLCFG    Path to URL configuration file
   -o DIR       Output directory
   -x           Detailed stack-trace on errors
   -r           Flush references file
   -p URL       Prepare HTML for WEB publishing (with base URL or '.' to skip)
   -q           Quiet
   -h           This help
Supported formats:
%s
Special commands:
%s
Supported schemes:
%s
%s''' % (__ABOUT__, formats, commands, fetchers, cfginfo)
        lp.prn(USAGE, file='stdout', quiet=self.quiet)
Exemplo n.º 3
0
Arquivo: nlp.py Projeto: bapcyk/nanolp
    def print_usage(self):
        def parser_info(cls):
            ext = '%s' % ', '.join(cls.ext)
            return '   %s - %s: %s'%(cls.__name__, cls.descr or 'Unknown', ext)

        def cmd_info(cls):
            return '   %s - %s'%(cls.__name__, cls.descr or 'Unknown')

        def fetcher_info(cls):
            return '   %s - %s'%(cls.__name__, cls.descr or 'Unknown')

        formats = [parser_info(p) for p in lp.Parser.parsers]
        formats = '\n'.join(formats)
        commands = [cmd_info(c) for c in lp.Cmd.commands]
        commands = '\n'.join(commands)
        fetchers = [fetcher_info(c) for c in lp.Vfile.vfiles]
        fetchers = '\n'.join(fetchers)

        if self.cfgfile or self.urlcfgfile:
            cfginfo = "Setup from: '%s', '%s'" % (self.cfgfile, self.urlcfgfile)
        else:
            cfginfo = ''

        USAGE = '''\
%s
Syntax: -i FILE [-f FMT] [-c CFG] [-u URLCFG] [-o DIR] [-x] [-r] [-p URL] [-q]
[-h]
   -i FILE      Input file or URL
   -f FMT       Force format (extension)
   -c CFG       Path to configuration file
   -u URLCFG    Path to URL configuration file
   -o DIR       Output directory
   -x           Detailed stack-trace on errors
   -r           Flush references file
   -p URL       Prepare HTML for WEB publishing (with base URL or '.' to skip)
   -q           Quiet
   -h           This help
Supported formats:
%s
Special commands:
%s
Supported schemes:
%s
%s'''%(__ABOUT__, formats, commands, fetchers, cfginfo)
        lp.prn(USAGE, file='stdout', quiet=self.quiet)
Exemplo n.º 4
0
    def parse_cmdline(self):
        """Returns True, if app may continue execution, False otherwise
        (help printing is only need)
        """
        try:
            opts, args = getopt.getopt(sys.argv[1:], 'rxqhi:f:c:u:o:p:', [])
        except getopt.GetoptError as x:
            sys.stderr.write('Syntax error! See help (-h)\n')
            sys.exit(1)

        self.input_file = None
        _UsageAndExit = False
        for o, v in opts:
            if o == '-h':
                _UsageAndExit = True
            elif o == '-i':
                self.input_file = v
            elif o == '-f':
                self.fmt = v
            elif o == '-c':
                self.cfgfile = v
            elif o == '-u':
                self.urlcfgfile = v
            elif o == '-o':
                self.outdir = v
            elif o == '-x':
                self.tb = True
            elif o == '-r':
                self.refs = True
            elif o == '-p':
                self.publish = '' if v == '.' else v
            elif o == '-q':
                self.quiet = True

        if _UsageAndExit:
            return False

        if not self.input_file:
            lp.prn('Input file is mandatory. See help (-h)',
                   file='stderr',
                   quiet=self.quiet)
            sys.exit(1)
        return True
Exemplo n.º 5
0
Arquivo: nlp.py Projeto: bapcyk/nanolp
    def parse_cmdline(self):
        """Returns True, if app may continue execution, False otherwise
        (help printing is only need)
        """
        try:
            opts, args = getopt.getopt(sys.argv[1:], 'rxqhi:f:c:u:o:p:', [])
        except getopt.GetoptError as x:
            sys.stderr.write('Syntax error! See help (-h)\n')
            sys.exit(1)

        self.input_file = None
        _UsageAndExit = False
        for o, v in opts:
            if o == '-h':
                _UsageAndExit = True
            elif o == '-i':
                self.input_file = v
            elif o == '-f':
                self.fmt = v
            elif o == '-c':
                self.cfgfile = v
            elif o == '-u':
                self.urlcfgfile = v
            elif o == '-o':
                self.outdir = v
            elif o == '-x':
                self.tb = True
            elif o == '-r':
                self.refs = True
            elif o == '-p':
                self.publish = '' if v == '.' else v
            elif o == '-q':
                self.quiet = True

        if _UsageAndExit:
            return False

        if not self.input_file:
            lp.prn('Input file is mandatory. See help (-h)', file='stderr', quiet=self.quiet)
            sys.exit(1)
        return True
Exemplo n.º 6
0
Arquivo: nlp.py Projeto: bapcyk/nanolp
    def main(self):
        onlyhelp = not self.parse_cmdline()

        def _do():
            """real action"""
            if not self.cfgfile:
                self.cfgfile = self.ensurecf('lprc')
            if not self.urlcfgfile:
                self.urlcfgfile = self.ensurecf('lpurlrc')

            if onlyhelp:
                self.print_usage()
                sys.exit(0)

            if self.publish is not None:
                # if need to publish...
                engine = lp.Lp(cfgfile=self.cfgfile, urlcfgfile=self.urlcfgfile, quiet=self.quiet, outdir=self.outdir)
                parser = lp.Parser.create_parser(engine, self.input_file, fmt=self.fmt)
                parser.parsefile(self.input_file, flush=False)
                pub = lp.Publisher(parser, baseurl=self.publish)
                pub.publish(self.input_file)
            else:
                engine = lp.Lp(cfgfile=self.cfgfile, urlcfgfile=self.urlcfgfile, quiet=self.quiet, outdir=self.outdir)
                parser = lp.Parser.create_parser(engine, self.input_file, fmt=self.fmt)
                parser.parsefile(self.input_file)

            if self.refs:
                # if need to flush references...
                fn = os.path.split(self.input_file)[1]
                fn = fn.upper()
                refsfile = lp.RefsFile(parser, "%s: references"%fn)
                refsfile.save()

        if self.tb:
            _do()
        else:
            try:
                _do()
            except Exception as x:
                lp.prn("ERROR '%s': %s"%(x.__class__.__name__,str(x)), file='stderr', quiet=self.quiet)
                sys.exit(1)