mirror of
https://github.com/nextcloud/android.git
synced 2024-11-27 09:39:25 +03:00
109 lines
3.3 KiB
Python
Executable file
109 lines
3.3 KiB
Python
Executable file
#!/usr/bin/env python
|
||
# -*- coding: utf-8 -*-
|
||
|
||
from optparse import OptionParser, OptionValueError
|
||
import os
|
||
import sys
|
||
|
||
from txclib import utils
|
||
from txclib import get_version
|
||
from txclib.log import set_log_level, logger
|
||
|
||
reload(sys) # WTF? Otherwise setdefaultencoding doesn't work
|
||
|
||
# This block ensures that ^C interrupts are handled quietly.
|
||
try:
|
||
import signal
|
||
|
||
def exithandler(signum,frame):
|
||
signal.signal(signal.SIGINT, signal.SIG_IGN)
|
||
signal.signal(signal.SIGTERM, signal.SIG_IGN)
|
||
sys.exit(1)
|
||
|
||
signal.signal(signal.SIGINT, exithandler)
|
||
signal.signal(signal.SIGTERM, exithandler)
|
||
if hasattr(signal, 'SIGPIPE'):
|
||
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
|
||
|
||
except KeyboardInterrupt:
|
||
sys.exit(1)
|
||
|
||
# When we open file with f = codecs.open we specifi FROM what encoding to read
|
||
# This sets the encoding for the strings which are created with f.read()
|
||
sys.setdefaultencoding('utf-8')
|
||
|
||
|
||
def main(argv):
|
||
"""
|
||
Here we parse the flags (short, long) and we instantiate the classes.
|
||
"""
|
||
usage = "usage: %prog [options] command [cmd_options]"
|
||
description = "This is the Transifex command line client which"\
|
||
" allows you to manage your translations locally and sync"\
|
||
" them with the master Transifex server.\nIf you'd like to"\
|
||
" check the available commands issue `%prog help` or if you"\
|
||
" just want help with a specific command issue `%prog help"\
|
||
" command`"
|
||
|
||
parser = OptionParser(
|
||
usage=usage, version=get_version(), description=description
|
||
)
|
||
parser.disable_interspersed_args()
|
||
parser.add_option(
|
||
"-d", "--debug", action="store_true", dest="debug",
|
||
default=False, help=("enable debug messages")
|
||
)
|
||
parser.add_option(
|
||
"-q", "--quiet", action="store_true", dest="quiet",
|
||
default=False, help="don't print status messages to stdout"
|
||
)
|
||
parser.add_option(
|
||
"-r", "--root", action="store", dest="root_dir", type="string",
|
||
default=None, help="change root directory (default is cwd)"
|
||
)
|
||
parser.add_option(
|
||
"--traceback", action="store_true", dest="trace", default=False,
|
||
help="print full traceback on exceptions"
|
||
)
|
||
parser.add_option(
|
||
"--disable-colors", action="store_true", dest="color_disable",
|
||
default=(os.name == 'nt' or not sys.stdout.isatty()),
|
||
help="disable colors in the output of commands"
|
||
)
|
||
(options, args) = parser.parse_args()
|
||
|
||
if len(args) < 1:
|
||
parser.error("No command was given")
|
||
|
||
utils.DISABLE_COLORS = options.color_disable
|
||
|
||
# set log level
|
||
if options.quiet:
|
||
set_log_level('WARNING')
|
||
elif options.debug:
|
||
set_log_level('DEBUG')
|
||
|
||
# find .tx
|
||
path_to_tx = options.root_dir or utils.find_dot_tx()
|
||
|
||
|
||
cmd = args[0]
|
||
try:
|
||
utils.exec_command(cmd, args[1:], path_to_tx)
|
||
except utils.UnknownCommandError:
|
||
logger.error("tx: Command %s not found" % cmd)
|
||
except SystemExit:
|
||
sys.exit()
|
||
except:
|
||
import traceback
|
||
if options.trace:
|
||
traceback.print_exc()
|
||
else:
|
||
formatted_lines = traceback.format_exc().splitlines()
|
||
logger.error(formatted_lines[-1])
|
||
sys.exit(1)
|
||
|
||
# Run baby :) ... run
|
||
if __name__ == "__main__":
|
||
# sys.argv[0] is the name of the script that we’re running.
|
||
main(sys.argv[1:])
|