Bug 731779: Integrate the Add-on SDK loader and API libraries into Firefox (uplifting from addon-sdk a16bbd5772880b578a939eeb65102bca6560d494)
This commit is contained in:
96
addon-sdk/source/python-lib/markdown/commandline.py
Normal file
96
addon-sdk/source/python-lib/markdown/commandline.py
Normal file
@@ -0,0 +1,96 @@
|
||||
"""
|
||||
COMMAND-LINE SPECIFIC STUFF
|
||||
=============================================================================
|
||||
|
||||
The rest of the code is specifically for handling the case where Python
|
||||
Markdown is called from the command line.
|
||||
"""
|
||||
|
||||
import markdown
|
||||
import sys
|
||||
import logging
|
||||
from logging import DEBUG, INFO, WARN, ERROR, CRITICAL
|
||||
|
||||
EXECUTABLE_NAME_FOR_USAGE = "python markdown.py"
|
||||
""" The name used in the usage statement displayed for python versions < 2.3.
|
||||
(With python 2.3 and higher the usage statement is generated by optparse
|
||||
and uses the actual name of the executable called.) """
|
||||
|
||||
OPTPARSE_WARNING = """
|
||||
Python 2.3 or higher required for advanced command line options.
|
||||
For lower versions of Python use:
|
||||
|
||||
%s INPUT_FILE > OUTPUT_FILE
|
||||
|
||||
""" % EXECUTABLE_NAME_FOR_USAGE
|
||||
|
||||
def parse_options():
|
||||
"""
|
||||
Define and parse `optparse` options for command-line usage.
|
||||
"""
|
||||
|
||||
try:
|
||||
optparse = __import__("optparse")
|
||||
except:
|
||||
if len(sys.argv) == 2:
|
||||
return {'input': sys.argv[1],
|
||||
'output': None,
|
||||
'safe': False,
|
||||
'extensions': [],
|
||||
'encoding': None }, CRITICAL
|
||||
else:
|
||||
print OPTPARSE_WARNING
|
||||
return None, None
|
||||
|
||||
parser = optparse.OptionParser(usage="%prog INPUTFILE [options]")
|
||||
parser.add_option("-f", "--file", dest="filename", default=sys.stdout,
|
||||
help="write output to OUTPUT_FILE",
|
||||
metavar="OUTPUT_FILE")
|
||||
parser.add_option("-e", "--encoding", dest="encoding",
|
||||
help="encoding for input and output files",)
|
||||
parser.add_option("-q", "--quiet", default = CRITICAL,
|
||||
action="store_const", const=CRITICAL+10, dest="verbose",
|
||||
help="suppress all messages")
|
||||
parser.add_option("-v", "--verbose",
|
||||
action="store_const", const=INFO, dest="verbose",
|
||||
help="print info messages")
|
||||
parser.add_option("-s", "--safe", dest="safe", default=False,
|
||||
metavar="SAFE_MODE",
|
||||
help="safe mode ('replace', 'remove' or 'escape' user's HTML tag)")
|
||||
parser.add_option("-o", "--output_format", dest="output_format",
|
||||
default='xhtml1', metavar="OUTPUT_FORMAT",
|
||||
help="Format of output. One of 'xhtml1' (default) or 'html4'.")
|
||||
parser.add_option("--noisy",
|
||||
action="store_const", const=DEBUG, dest="verbose",
|
||||
help="print debug messages")
|
||||
parser.add_option("-x", "--extension", action="append", dest="extensions",
|
||||
help = "load extension EXTENSION", metavar="EXTENSION")
|
||||
|
||||
(options, args) = parser.parse_args()
|
||||
|
||||
if not len(args) == 1:
|
||||
parser.print_help()
|
||||
return None, None
|
||||
else:
|
||||
input_file = args[0]
|
||||
|
||||
if not options.extensions:
|
||||
options.extensions = []
|
||||
|
||||
return {'input': input_file,
|
||||
'output': options.filename,
|
||||
'safe_mode': options.safe,
|
||||
'extensions': options.extensions,
|
||||
'encoding': options.encoding,
|
||||
'output_format': options.output_format}, options.verbose
|
||||
|
||||
def run():
|
||||
"""Run Markdown from the command line."""
|
||||
|
||||
# Parse options and adjust logging level if necessary
|
||||
options, logging_level = parse_options()
|
||||
if not options: sys.exit(0)
|
||||
if logging_level: logging.getLogger('MARKDOWN').setLevel(logging_level)
|
||||
|
||||
# Run
|
||||
markdown.markdownFromFile(**options)
|
||||
Reference in New Issue
Block a user