--- /dev/null
+#!/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:])