diff --git a/src/Solver/ASolver.py b/src/Solver/ASolver.py index b4285923ccd9d6b4f6ed7612f82335f352455298..ca6e6f4f97dced074b1f663541b205b4e82c35cd 100644 --- a/src/Solver/ASolver.py +++ b/src/Solver/ASolver.py @@ -189,9 +189,18 @@ class AbstractSolver(object): logger.debug(f"! {cmd}") - cmd = cmd.split() - exe = cmd[0] - args = cmd[1:] + if cmd[0] == "\"": + # Command line executable path is between " char + cmd = cmd.split("\"") + exe = cmd[1] + args = "\"".join(cmd[3:]).split(" ") + else: + # We suppose the command line executable path as no space char + cmd = cmd.replace("\ ", "&_&").split(" ") + exe = cmd[0].replace("&_&", "\ ") + args = cmd[1:] + + logger.info(f"! {exe} {args}") if not os.path.exists(exe): error = f"[ERROR] Path {exe} do not exists" @@ -215,11 +224,20 @@ class AbstractSolver(object): cmd = cmd.replace("@input", self.input_param()) cmd = cmd.replace("@dir", self._process.workingDirectory()) - logger.debug(f"! {cmd}") + logger.info(f"! {cmd}") - cmd = cmd.split() - exe = cmd[0] - args = cmd[1:] + if cmd[0] == "\"": + # Command line executable path is between " char + cmd = cmd.split("\"") + exe = cmd[1] + args = "\"".join(cmd[3:]).split(" ") + else: + # We suppose the command line executable path as no space char + cmd = cmd.replace("\ ", "&_&").split(" ") + exe = cmd[0].replace("&_&", "\ ") + args = cmd[1:] + + logger.info(f"! {exe} {args}") if not os.path.exists(exe): error = f"[ERROR] Path {exe} do not exists" @@ -246,9 +264,16 @@ class AbstractSolver(object): logger.debug(f"! {cmd}") - cmd = cmd.split() - exe = cmd[0] - args = cmd[1:] + if cmd[0] == "\"": + # Command line executable path is between " char + cmd = cmd.split("\"") + exe = cmd[1] + args = "\"".join(cmd[3:]).split(" ") + else: + # We suppose the command line executable path as no space char + cmd = cmd.replace("\ ", "&_&").split(" ") + exe = cmd[0].replace("&_&", "\ ") + args = cmd[1:] if not os.path.exists(exe): error = f"[ERROR] Path {exe} do not exists" diff --git a/src/config.py b/src/config.py index 16ec6b1263ce148ccdbf33872781f259063070ad..89563ecbe6ec255438a68513a681d97293b2d8cc 100644 --- a/src/config.py +++ b/src/config.py @@ -254,7 +254,7 @@ class Config(SQL): ctor = solver_type_list["mage8"] new = ctor("default-mage") new._description = "Default PAMHYR mage 8 version" - new._cmd_solver = f"""@install_dir/mage/mage{"" if posix else ".exe"} -fp=1 @input""" + new._cmd_solver = f""""@install_dir/mage/mage{"" if posix else ".exe"}" -fp=1 @input""" self._solvers.append(new) # Meshing tool