123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- #!/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()
|