from github.env import get_required_env_var
from nexus.nexus_api import search_and_download
import re, os

NEXUS_HOTFIX_VERSION_PREFIX = '0.0.0-'
HOTFIX_PATTERN = r'(staging|production)-\d+-[a-z0-9]{7,8}'

def main():
    lambda_name = get_required_env_var('SVC_NAME')
    destination_zip_name = f'{lambda_name}.zip'
    lambda_version = get_required_env_var('DEPLOYED_ARTIFACT_VERSION')
    is_hotfix = re.match(HOTFIX_PATTERN, lambda_version)
    additional_params = {'maven.extension': 'zip'} if os.getenv('RUNTIME') == 'Java' else {}
    if is_hotfix:
        # For hotfix cases nexus package was published with version mask having 0.0.0 -> 0.0.0-<env>-<BN>-<CH>
        lambda_version = f'{NEXUS_HOTFIX_VERSION_PREFIX}{lambda_version}'
    search_and_download(lambda_name, lambda_version, destination_zip_name, **additional_params)


if __name__ == '__main__':
    main()  # for backward compatibility
