#!/usr/bin/env python # -*- coding: utf-8 -*- """ :codeauthor: Pedro Algarvio (pedro@algarvio.me) setup-transifex-config ~~~~~~~~~~~~~~~~~~~~~~ Setup the Transifex client configuration file """ import getpass # Import python libs import os import sys import ConfigParser HOST = "https://www.transifex.com" RCFILE = os.path.abspath( os.environ.get("TRANSIFEX_RC", os.path.expanduser("~/.transifexrc")) ) def main(): """ Run the setup code """ print( "This script will setup a Transifex client configuration file, or, " "if it already exists, make some minimal checks to see if it's " "properly configured\n" ) if not os.path.exists(RCFILE): while True: username = os.environ.get("TRANSIFEX_USER", None) if username is not None: break try: username = raw_input("What is your username on Transifex.com? ") if username: break except KeyboardInterrupt: print sys.exit(1) while True: password = os.environ.get("TRANSIFEX_PASS", None) if password is not None: break try: password = getpass.getpass("What is your password on Transifex.com? ") if password: break except KeyboardInterrupt: print sys.exit(1) config = ConfigParser.SafeConfigParser() config.add_section(HOST) config.set(HOST, "token", "") config.set(HOST, "hostname", HOST) config.set(HOST, "username", username) config.set(HOST, "password", password) config.write(open(RCFILE, "w")) print("username and password stored in '{0}'".format(RCFILE)) os.chmod(RCFILE, 0600) print("Secured the permissions on '{0}' to 0600".format(RCFILE)) sys.exit(0) # The file exists, let's see if it's properly configured config = ConfigParser.SafeConfigParser() config.read([RCFILE]) if not config.has_section(HOST): print( "'~/.transifexrc' is not properly configured, it's missing " "the {0} section".format(HOST) ) for setting in ("username", "password", "hostname", "token"): if not config.has_option(HOST, setting): print( "'~/.transifexrc' is not properly configured, it's " "missing the {0} option".format(setting) ) sys.exit(1) if setting == "token": # Token should be left empty continue if not config.get(HOST, setting): print( "'~/.transifexrc' is not properly configured, it's " "missing a value for the {0} option".format(setting) ) sys.exit(1) if __name__ == "__main__": main()