feat(db) update db when pakfile make changes
This commit is contained in:
parent
67c0c00fc3
commit
2060ad088d
1 changed files with 43 additions and 1 deletions
|
|
@ -10,6 +10,8 @@
|
||||||
import os
|
import os
|
||||||
import toml
|
import toml
|
||||||
|
|
||||||
|
from .db import get_db_connection
|
||||||
|
|
||||||
class Pakfile:
|
class Pakfile:
|
||||||
"""
|
"""
|
||||||
Représente un fichier de description de paquet (pakfile.toml)
|
Représente un fichier de description de paquet (pakfile.toml)
|
||||||
|
|
@ -82,12 +84,15 @@ class Pakfile:
|
||||||
with open(pakfile_path, "w", encoding="utf-8") as f:
|
with open(pakfile_path, "w", encoding="utf-8") as f:
|
||||||
toml.dump(data, f)
|
toml.dump(data, f)
|
||||||
|
|
||||||
|
self.update_db()
|
||||||
|
|
||||||
def set(self, key: str, value):
|
def set(self, key: str, value):
|
||||||
"""
|
"""
|
||||||
Définit une valeur dans le pakfile et sauvegarde immédiatement
|
Définit une valeur dans le pakfile et sauvegarde immédiatement
|
||||||
"""
|
"""
|
||||||
self.data[key] = value
|
self.data[key] = value
|
||||||
self._save()
|
self._save()
|
||||||
|
self.update_db()
|
||||||
|
|
||||||
def _save(self):
|
def _save(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -157,6 +162,8 @@ class Pakfile:
|
||||||
print(f"Erreur lors de la suppression de '{package}': {e}")
|
print(f"Erreur lors de la suppression de '{package}': {e}")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
self.update_db()
|
||||||
|
|
||||||
def check(self):
|
def check(self):
|
||||||
"""
|
"""
|
||||||
Vérifie la validité de la structure du pakfile.
|
Vérifie la validité de la structure du pakfile.
|
||||||
|
|
@ -180,3 +187,38 @@ class Pakfile:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def update_db(self):
|
||||||
|
"""
|
||||||
|
Met à jour la base SQLite avec les informations actuelles du pakfile.
|
||||||
|
Si le paquet existe, il est mis à jour. Sinon, il est inséré.
|
||||||
|
"""
|
||||||
|
conn = get_db_connection()
|
||||||
|
cursor = conn.cursor()
|
||||||
|
|
||||||
|
# Récupère les données à jour
|
||||||
|
name = self.get("name")
|
||||||
|
version = self.get("ver")
|
||||||
|
revision = self.get("rev")
|
||||||
|
sources = self.get("src")
|
||||||
|
deps = self.get("deps")
|
||||||
|
bdeps = self.get("bdeps")
|
||||||
|
|
||||||
|
# Conversion des listes en string (on se complique pas la vie)
|
||||||
|
src_str = ",".join(sources) if sources else ""
|
||||||
|
deps_str = ",".join(deps) if deps else ""
|
||||||
|
bdeps_str = ",".join(bdeps) if bdeps else ""
|
||||||
|
|
||||||
|
cursor.execute("""
|
||||||
|
INSERT INTO paquets (name, version, revision, sources, deps, build_deps)
|
||||||
|
VALUES (?, ?, ?, ?, ?, ?)
|
||||||
|
ON CONFLICT(name) DO UPDATE SET
|
||||||
|
version = excluded.version,
|
||||||
|
revision = excluded.revision,
|
||||||
|
sources = excluded.sources,
|
||||||
|
deps = excluded.deps,
|
||||||
|
build_deps = excluded.build_deps
|
||||||
|
""", (name, version, revision, src_str, deps_str, bdeps_str))
|
||||||
|
|
||||||
|
conn.commit()
|
||||||
|
conn.close()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue