import os

from github.env import get_required_env_var
from terragrunt.tg_common import (get_bucket_name, get_s3_path, sanitize_work_dir,
                               upload_file_to_s3)
from terragrunt.constants import DESTROY_PLAN_FILE, PLAN_FILE


def upload_destroy_plan(github_repository, work_dir, env_name, sub_folder):
    """Uploads destroy plan to a path in s3 bucket as destroy.tfplan"""
    bucket_name = get_bucket_name(env_name)
    cwd = os.getcwd()
    os.chdir(work_dir)
    s3_plan_folder = get_s3_path(github_repository, work_dir, sub_folder)
    s3_destroy_plan_path = os.path.join(s3_plan_folder, DESTROY_PLAN_FILE)
    upload_file_to_s3(bucket_name, PLAN_FILE, s3_destroy_plan_path)
    os.chdir(cwd)

def main():
    work_dir = sanitize_work_dir(get_required_env_var('WORK_DIR'))
    env_name = get_required_env_var('ENV_NAME')
    github_repository = get_required_env_var('GITHUB_REPOSITORY')
    upload_destroy_plan(github_repository, work_dir, env_name, "plan")

if __name__ == "__main__":
    main()
