123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- '''
- :codeauthor: 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()
|