#!/usr/bin/env python # -*- coding: utf-8 -*- ''' :codeauthor: :email:`Pedro Algarvio (pedro@algarvio.me)` setup-transifex-config ~~~~~~~~~~~~~~~~~~~~~~ Setup the Transifex client configuration file ''' # Import python libs import os import sys import getpass 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()