import os
from common.common import run_command

def get_maven_artifact_dir_and_file(version: str = "", packaging: str = "", is_multi_service: bool = False, mvn_extra_args: str = "") -> tuple:
    evaluation_path = "project"
    if is_multi_service:
        evaluation_path = "project.parent"
    group_id = run_command(f"mvn help:evaluate {mvn_extra_args} -Dexpression={evaluation_path}.groupId -q -DforceStdout")
    artifact_id = run_command(f"mvn help:evaluate {mvn_extra_args} -Dexpression=project.artifactId -q -DforceStdout")
    if not version:
        version = run_command(f"mvn help:evaluate {mvn_extra_args} -Dexpression=project.version -q -DforceStdout")
    if not packaging:
        packaging = run_command(f"mvn help:evaluate {mvn_extra_args} -Dexpression=project.packaging -q -DforceStdout")
       
    artifact_dir = os.path.join(*group_id.split('.'), artifact_id, version)
    artifact_file = f"{artifact_id}-{version}.{packaging}"
    
    return artifact_dir, artifact_file
