salt/doc/.scripts/setup-transifex-config
2020-04-03 13:05:41 -05:00

106 lines
2.9 KiB
Python
Executable file

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