from pathlib import Path

from common import cd_path, get_env_variable_required
from common.file_helpers import get_java_version
from src.interface.maven_project_with_docker import MavenProjectWithDockerInterface


class MavenApp(MavenProjectWithDockerInterface):
    def package(self):
        java_version = get_java_version()
        if java_version >= "17":
            project_root = Path(get_env_variable_required("CI_PROJECT_DIR"))

            self._execute_mvn_command("deploy -DskipTests=true -Ddockerfile.skip=true")

            docker_dir = project_root / "target" / "docker"

            if docker_dir.is_dir():
                cd_path("target/docker")

            self._push_image()
        else:
            self._docker_login()
            self._create_repository()
            super().package()
