import os
from env_files.create_dot_env import inject_dd_env_vars_to_dot_env
from actions_logging.app_logging import logger
from github.env import get_required_env_var
from aws.s3_apis.s3 import download_file_from_s3, upload_file_to_s3
from aws.env_info import get_env_bucket
from aws.constants import PROD_ACCOUNT_ENVS

def main():
  svc_name = get_required_env_var("SVC_NAME")
  env_name = get_required_env_var("ENV_NAME")
  version = os.getenv("VERSION_TO_DEPLOY")
  bucket = get_env_bucket(env_name)
  env_file = f"{svc_name}.env"

  env_name_to_assume = env_name if env_name not in PROD_ACCOUNT_ENVS else ''
  download_file_from_s3(bucket, env_file, env_file, env_name_to_assume)
  logger.info(f"downloaded {env_file} for {env_name} to inject datadog env vars")
  inject_dd_env_vars_to_dot_env(svc_name, version)
  upload_file_to_s3(bucket, env_file, env_file, env_name_to_assume)
  logger.info(f"uploaded {env_file} for {env_name} with injected datadog env vars")

if __name__ == "__main__":
  main()