53 lines
2.1 KiB
Python
53 lines
2.1 KiB
Python
import workspaces, sys, os
|
|
|
|
def generate(args):
|
|
current_workspace = workspaces.get_env()
|
|
workspaces_names = ['default']
|
|
aws_creds_dir = '~/.aws'
|
|
aws_creds_file = 'credentials'
|
|
aws_creds_full = aws_creds_dir + '/' + aws_creds_file
|
|
|
|
if os.path.isfile(os.path.expanduser(aws_creds_full)):
|
|
answer = input(f"[WARNING] File {aws_creds_full} already exists. Atmos will generate a new credentials file from your env vars. \nDo you want to override {aws_creds_full}? [y/N]")
|
|
if not answer or answer[0].lower() != 'y':
|
|
print("File not changed. This flag is for CI/CD only")
|
|
exit(1)
|
|
else:
|
|
if not os.path.isdir(os.path.expanduser(aws_creds_dir)):
|
|
os.makedirs(os.path.expanduser(aws_creds_dir))
|
|
|
|
if current_workspace != 'default':
|
|
workspaces_names.append(current_workspace)
|
|
|
|
project_name = ""
|
|
if (args.project):
|
|
delimeter = "_"
|
|
project_name = args.project.upper() + delimeter
|
|
|
|
contents = ""
|
|
for workspace in workspaces_names:
|
|
access_key_name = project_name + workspace.upper() + '_ACCESS_KEY_ID'
|
|
secret_key_name = project_name + workspace.upper() + '_SECRET_ACCESS_KEY'
|
|
|
|
if (args.verbose):
|
|
print(access_key_name)
|
|
print(secret_key_name)
|
|
|
|
if (workspace == 'default'):
|
|
contents = contents + "[{workspace}]\n".format(workspace=(workspace).lower())
|
|
else:
|
|
contents = contents + "[{workspace}]\n".format(workspace=(project_name.replace("_", "-") + workspace).lower())
|
|
|
|
try:
|
|
contents = contents + "aws_access_key_id=" + os.environ.get(access_key_name) + "\n"
|
|
except:
|
|
print("[ERROR]: Env Variable " + access_key_name + " not found.")
|
|
sys.exit(1)
|
|
try:
|
|
contents = contents + "aws_secret_access_key=" + os.environ.get(secret_key_name) + "\n"
|
|
except:
|
|
print("[ERROR]: Env Variable " + secret_key_name + " not found.")
|
|
sys.exit(1)
|
|
|
|
with open(os.path.expanduser(aws_creds_full), 'w+') as f:
|
|
f.write(contents)
|