Add: --force option to delete existing package
This commit is contained in:
parent
6a6d439aa2
commit
56bd015690
5 changed files with 69 additions and 10 deletions
|
|
@ -13,6 +13,9 @@ from erminig.core.config import Config
|
|||
from erminig.controllers.govel.pakva import Pakva
|
||||
from erminig.controllers.govel.build import run_build_function, run_pak_function
|
||||
from erminig.core.package import Package
|
||||
from erminig.core.security import run_as_user
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
|
||||
def main():
|
||||
|
|
@ -21,6 +24,17 @@ def main():
|
|||
|
||||
build_parser = subparsers.add_parser("build")
|
||||
build_parser.add_argument("--name", help="Nom du paquet à builder")
|
||||
build_parser.add_argument(
|
||||
"--force",
|
||||
action="store_true",
|
||||
help="Force le build même si le dossier existe déjà",
|
||||
)
|
||||
|
||||
new_parser = subparsers.add_parser("new")
|
||||
new_parser.add_argument("--name", required=True, help="Nom du paquet")
|
||||
|
||||
edit_parser = subparsers.add_parser("edit")
|
||||
edit_parser.add_argument("--name", required=True, help="Nom du paquet à éditer")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
|
|
@ -36,6 +50,19 @@ def main():
|
|||
|
||||
pak_success = False
|
||||
|
||||
tmp_path = Path(f"{Config.BUILD_DIR}/{pakva.name}-{pakva.version}")
|
||||
if tmp_path.exists():
|
||||
if not args.force:
|
||||
print(
|
||||
f"[GOVEL] Erreur : {tmp_path} existe déjà. Utilisez --force pour écraser."
|
||||
)
|
||||
return
|
||||
else:
|
||||
print(f"[GOVEL] Build forcé activé. Suppression de {tmp_path}…")
|
||||
import shutil
|
||||
|
||||
shutil.rmtree(tmp_path)
|
||||
|
||||
build_success = run_build_function(pakva.path, pakva.name, pakva.version)
|
||||
if build_success:
|
||||
pak_success = run_pak_function(pakva.path, pakva.name, pakva.version)
|
||||
|
|
@ -51,6 +78,21 @@ def main():
|
|||
else:
|
||||
print(f"[GOVEL] Build échoué pour {pakva.name}")
|
||||
|
||||
elif args.command == "new":
|
||||
if args.name:
|
||||
pakva = Pakva(args.name)
|
||||
pakva.save()
|
||||
|
||||
elif args.command == "edit":
|
||||
pakva = Pakva.load_from_name(args.name)
|
||||
open_editor(pakva.path)
|
||||
|
||||
|
||||
@run_as_user("pak")
|
||||
def open_editor(path):
|
||||
editor = os.getenv("EDITOR", "nvim")
|
||||
subprocess.run([editor, str(path)])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue