145 Commits

Author SHA1 Message Date
853e8f07cf cli: Rends configurable quels fichiers sont empaquetés 2023-01-02 13:42:11 +01:00
d3b2dcf4d0 Merge pull request 'Ajoute le registre des installations' (#34) from cli/install-registry into main 2022-12-29 12:14:08 +01:00
490126028d cli: Corrige la compilation avec GCC 12 2022-12-29 12:11:20 +01:00
d86d69abf4 cli: Restreins la copie et le déplacement de fichiers temporaires 2022-12-29 12:07:42 +01:00
ab3ddd8c68 cli: Refactor avec #listDeclaredPackagesNames 2022-12-26 12:20:01 +01:00
c7206f015e cli: Utilise des fs::path pour les fichiers temporaires 2022-12-26 12:18:47 +01:00
221d90c805 cli(test): Alloue le nom du paquet en amont
La structure Dependency ne possède pas la chaîne de caractères, elle
n'en a qu'une référence. Créer une référence vers un type std::string
qui n'est en réalité qu'un litéral (const char*) relève d'un
comportement indéfini. En l'occurence, cela ne semble pas avoir posé
de problèmes jusqu'à tester d'exécuter les tests compilés avec GCC 12.2
et liés avec ld 2.39.0.
2022-12-25 12:57:40 +01:00
569013be82 cli: Présente le nombre de paquets désinstallés 2022-12-24 14:32:28 +01:00
fa709bfb24 cli: Supprime également les dépendances devenues inutiles 2022-12-22 12:22:42 +01:00
64fc085d0f Merge branch 'cli/remove' into cli/install-registry 2022-12-22 12:17:14 +01:00
4443818406 cli(test): Teste de télécharger un paquet 2022-12-22 11:23:09 +01:00
8f1c63f692 cli: Reconstruis le fichier verrou lorsque le manifeste est plus récent 2022-12-22 11:01:35 +01:00
d61cc5b29e cli: Réalise une copie des noms des dépendances directes 2022-12-22 10:59:53 +01:00
1284011a1b cli: Introduis l'installateur
Son rôle est important : à l'aide du registre des installations, il sait
s'il faut installer ou non une version.

Il a son propre fichier et peut être demandé par n'importe quelle action
qui souhaiterait installer des paquets. Ce n'est plus le dépôt qui est en
charge d'installer le paquet, mais bien l'installateur.

ReinstallAction devient FetchAction pour mieux correspondre à son
usage : installer des dépendances qu'il manquerait sans réinstaller ce
qui est déjà là.

La fonction fetch() est template pour fonctionner avec les deux
héritages de la classe package::DownloadableVersion sans utiliser de
fonction virtuelle ou de pointeur.

Fix #6
Implement #28
2022-12-21 15:38:00 +01:00
38be5e1613 cli(make): Ajoute de quoi installer et désinstaller 2022-12-21 11:35:39 +01:00
577c652f17 *: Renomme short_name en name 2022-12-21 11:35:27 +01:00
7b243efda2 cli: Adapte les dépendances pour le fichier verrou 2022-12-16 14:19:52 +01:00
f6b1247863 cli: Vérifie que les dépendances sont présentes 2022-12-16 14:12:07 +01:00
Colin FRIZOT
5b6b066b79 Ajoute la commande tree à l'aide 2022-12-16 13:58:36 +01:00
cf02a1cd30 cli: Documente les classes de version 2022-12-16 13:52:04 +01:00
f31a6b71f2 cli: Crée le fichier verrou pour le Makefile 2022-12-16 13:50:32 +01:00
246f546045 cli: Affiche l'arbre des dépendances avec oki tree
Cette commande consulte les dépendances directes déclarées dans le fichier
manifeste oki.toml et les dépendances concrètes dans le fichier verrou
oki-lock.toml. L'arbre des dépendances est présenté au format textuel avec
des caractères UTF-8 pour les relations entre les paquets.

Fix #29
2022-12-15 09:12:11 +01:00
Colin FRIZOT
5dde4c1d6b Ajoute la création du makefile à partir du fichier ManifestLock 2022-12-15 09:07:36 +01:00
c196fe1854 cli: Liste les versions installées avec un fichier verrou 2022-12-13 13:25:34 +01:00
1dc58b7fef cli: Introduit la notion de paquets téléchargeables 2022-12-12 20:25:24 +01:00
Colin FRIZOT
fe12d2410d Ajoute la supression et installe les paquets dans leurs dossiers respectifs 2022-12-09 09:48:44 +01:00
6e61041452 Merge branch 'cli/dependency-solver' 2022-12-09 09:20:31 +01:00
ada2f782f6 cli: Passe par référence les paramètres 2022-12-09 09:07:33 +01:00
39fa086e37 Merge branch 'cli/manifest' 2022-12-09 08:57:43 +01:00
076e6ed7e5 cli: Passe les fs::path par référence 2022-12-09 08:55:29 +01:00
Colin FRIZOT
e35e43aa41 Ajoute la lecture des dependances retournée par l'API 2022-12-09 08:29:31 +01:00
64688533cd cli: Corrige la compilation des tests 2022-12-09 08:22:37 +01:00
776460f7b6 Merge branch 'cli/publish' 2022-12-09 08:17:24 +01:00
56864c3715 cli: Résous les dépendances de dépendances 2022-12-05 20:19:43 +01:00
c5c195261e cli: Évite un éventuel buffer overflow
unzGetCurrentFileInfo ne dépassait pas la taille du buffer qui lui
était allouée, mais ne pouvait pas, lorsque le nom de fichier est plus
long que la taille du tampon, écrire la fin de la chaîne de
caractères (\0).
2022-11-30 14:38:53 +01:00
47df190be1 doc: met à jour la présentation de l'architecture 2022-11-30 14:19:26 +01:00
239fd2e805 Merge branch 'cli/range' 2022-11-30 14:10:14 +01:00
d7d4c361a1 cli: Détaille les éventuelles erreurs du manifeste 2022-11-30 14:07:14 +01:00
03c74d8f8e cli: Gère les contraintes de version dans le manifeste 2022-11-29 12:57:55 +01:00
Colin FRIZOT
8d79bd0fd4 cli: Ajoute la recherche du fichier manifeste en remontant l'arborescence 2022-11-28 11:54:17 +01:00
Colin FRIZOT
c00977f76e cli: Lance une exception si le fichier manifeste n'existe pas 2022-11-28 11:09:15 +01:00
1fb8f707fd Merge pull request 'Formalise les conventions' (#20) from conventions into main [CI SKIP]
Reviewed-on: https://codefirst.iut.uca.fr/git/oki/oki/pulls/20
Reviewed-by: Colin FRIZOT <colin.frizot@etu.uca.fr>
Reviewed-by: Lou VALADE <lou.valade@etu.uca.fr>
2022-11-26 12:01:21 +01:00
f9889fb1b5 cli: Permet de publier un paquet sur un dépôt
oki publish transmet les données de version, extraites du manifeste et le contenu de la version au format .zip.

Fix #23
2022-11-26 11:48:45 +01:00
46955c7312 cli: Rend la méthode TmpFile#getFilename const 2022-11-26 11:43:33 +01:00
dfc5b41dcd cli(http): Permet de faire passer des données POST et de téléverser des fichiers 2022-11-26 11:41:40 +01:00
6061862375 cli: Permet de créer une archive .zip d'un dossier 2022-11-26 11:26:48 +01:00
2b4af299fb cli: Parse des intervalles de version pour tester si une version est comprise ou non 2022-11-24 15:50:31 +01:00
4886c4ea78 cli: Ajoute une méthode pour la version suivante minimale et crée une ParseException 2022-11-24 15:44:35 +01:00
17f5794156 cli: Sépare PackageVersion de Version
Fix #14
2022-11-23 14:50:36 +01:00
00c6a30709 cli: Affiche un message lors de l'ajout d'un nouveau paquet 2022-11-23 13:44:16 +01:00