mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
106 lines
2.9 KiB
Python
Executable file
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()
|