From c8a6d4ec747d53591b04fe1f0e6acb199c47bd88 Mon Sep 17 00:00:00 2001
From: Pierre-Antoine Rouby <pierre-antoine.rouby@inrae.fr>
Date: Wed, 2 Aug 2023 10:47:44 +0200
Subject: [PATCH] config: Add default mage version into config.

---
 src/Solver/ASolver.py | 11 +++++++++++
 src/config.py         | 24 +++++++++++++++++++++++-
 2 files changed, 34 insertions(+), 1 deletion(-)

diff --git a/src/Solver/ASolver.py b/src/Solver/ASolver.py
index 5aaae4ff..bfb47aa7 100644
--- a/src/Solver/ASolver.py
+++ b/src/Solver/ASolver.py
@@ -168,12 +168,21 @@ class AbstractSolver(object):
     # Run #
     #######
 
+    def _install_dir(self):
+        return os.path.abspath(
+            os.path.join(
+                os.path.dirname(__file__),
+                ".."
+            )
+        )
+
     def run_input_data_fomater(self):
         if self._cmd_input == "":
             self._run_next()
             return True
 
         cmd = self._cmd_input
+        cmd = cmd.replace("@install_dir", self._install_dir())
         cmd = cmd.replace("@path", self._path_input)
         cmd = cmd.replace("@input", self.input_param())
         cmd = cmd.replace("@dir", self._process.workingDirectory())
@@ -196,6 +205,7 @@ class AbstractSolver(object):
             return True
 
         cmd = self._cmd_solver
+        cmd = cmd.replace("@install_dir", self._install_dir())
         cmd = cmd.replace("@path", self._path_solver)
         cmd = cmd.replace("@input", self.input_param())
         cmd = cmd.replace("@dir", self._process.workingDirectory())
@@ -219,6 +229,7 @@ class AbstractSolver(object):
             return True
 
         cmd = self._cmd_output
+        cmd = cmd.replace("@install_dir", self._install_dir())
         cmd = cmd.replace("@path", self._path_output)
         cmd = cmd.replace("@input", self.input_param())
         cmd = cmd.replace("@dir", self._process.workingDirectory())
diff --git a/src/config.py b/src/config.py
index d18a8e34..5e98a7af 100644
--- a/src/config.py
+++ b/src/config.py
@@ -34,7 +34,7 @@ logger = logging.getLogger()
 
 class Config(SQL):
     def __init__(self):
-        self._version = '0.0.1'
+        self._version = '0.0.2'
         self.filename = Config.filename()
         self.set_default_value()
 
@@ -79,12 +79,34 @@ class Config(SQL):
 
         self.commit()
 
+
     def _update(self):
         version = self.execute(f"SELECT value FROM info WHERE key='version'")[0]
 
         if version != self._version:
             logger.info(f"Configuration file update from {version} to {self._version}...")
 
+            major, minor, release = version.strip().split(".")
+
+            if major == minor == "0":
+                if int(release) < 2:
+                    # Add default solver
+                    posix = os.name == 'posix'
+                    self.execute(f"""
+                      INSERT INTO solver VALUES (
+                        'mage8',
+                        'default-mage',
+                        'Default PAMHYR mage 8 version',
+
+                        '', '', '',
+
+                        '',
+                        '@install_dir/mage/mage{"" if posix else ".exe"} -fp=1 @input',
+                        ''
+                      )
+                    """)
+            self.commit()
+
     def _load_solver(self):
         self._solvers = []
 
-- 
GitLab