🛠️ Fonctionnement des Commandes Nadim
1️⃣ Commandes de gestion de Nadim ("platform")
Les commandes de gestion de Nadim suivent la syntaxe :
nadim platform <commande>Exemples :
Ajouter un outil : nadim platform add tool mysql
Supprimer un outil : nadim platform delete tool mysql
Mettre à jour Nadim : nadim platform update
Gérer Nadim via Git : nadim platform git <commande>
2️⃣ Commandes propres aux outils
Chaque outil ajouté suit la syntaxe :
nadim <nom-outil> <commande>Exemples :
Créer une commande pour un outil : nadim mysql add command backup
Archiver une commande existante : nadim mysql archive command backup
Réactiver une commande archivée : nadim mysql activate command backup
Exécuter une commande existante : nadim mysql backup
📦 Ajout d’un Nouvel Outil
Lorsqu’on exécute :
sudo nadim platform add tool mysql --classicUn nouveau dossier est créé dans nadim-tools/, sans inclure de répertoire scaffold/ puisque celui-ci est centralisé dans platform/.
Structure générée :
/usr/local/lib/nadim/nadim-tools/
├── mysql/ # Nom de l’outil ajouté (ex: MySQL)
│ ├── commands/ # Dossier des commandes (vide au départ)
│ ├── archived/ # Dossier pour les commandes archivées
│ ├── config/ # Configurations spécifiques à l’outil
│ │ ├── .env # Fichier d’environnement
│ │ ├── securedata.enc # Données sécurisées (seul root peut les décrypter)
│ ├── metadata/ # Métadonnées de l’outil
│ │ ├── version # Numéro de version
│ │ ├── LICENCE # Fichier de licence
│ │ ├── author # Auteur de l’outil
│ │ ├── readme.md # Documentation de l’outil
➕ Ajout d’une Commande dans un Outil
Une fois un outil ajouté, on peut lui ajouter des commandes dynamiques grâce au scaffold/ centralisé dans platform/.
Ajouter une Commande
Lorsqu’on exécute :
nadim mysql add command backupLe script create.sh dans platform/scaffold/ est utilisé pour générer automatiquement la structure suivante :
/usr/local/lib/nadim/nadim-tools/
├── mysql/
│ ├── commands/
│ │ ├── backup/
│ │ │ ├── backup.sh # Script principal
│ │ │ ├── config.json # Configuration spécifique
│ │ │ ├── dependencies.sh # Dépendances nécessaires
Archiver une Commande
Lorsqu’on exécute :
nadim mysql archive command backupLe script archive.sh dans platform/scaffold/ est utilisé pour déplacer la commande vers le dossier archived/ :
/usr/local/lib/nadim/nadim-tools/
├── mysql/
│ ├── archived/
│ │ ├── backup/
│ │ │ ├── backup.sh
│ │ │ ├── config.json
│ │ │ ├── dependencies.sh
Réactiver une Commande
Lorsqu’on exécute :
nadim mysql activate command backupLe script activate.sh dans platform/scaffold/ est utilisé pour remettre la commande dans le dossier commands/ :
/usr/local/lib/nadim/nadim-tools/
├── mysql/
│ ├── commands/
│ │ ├── backup/
│ │ │ ├── backup.sh
│ │ │ ├── config.json
│ │ │ ├── dependencies.sh
✅ Points Clés
Le répertoire scaffold/ est centralisé dans platform/, évitant ainsi toute duplication entre les outils.
Les scripts create.sh, archive.sh et activate.sh sont partagés entre tous les outils, rendant le système plus efficace et maintenable.
Chaque outil reste indépendant et peut être modifié sans impacter les autres.
Les commandes peuvent être ajoutées, archivées et réactivées dynamiquement, facilitant l'évolution du framework.
Les configurations sensibles sont toujours stockées dans .env et securedata.enc de manière cryptée via openssl.
La structure garantit une organisation claire et évolutive, permettant à Nadim de gérer un grand nombre d'outils et de commandes sans complexité excessive.
INFORMATIONS GÉNÉRALES
Conditions de Licence
Licence : Les termes et conditions d'utilisation, de reproduction et de distribution tels que définis dans ce document. La licence suivante s'applique au code source, aux scripts, aux fichiers de configuration et à toute autre contribution liée au projet Nadim.
Licencier : El Moumen Yassine ou toute entité autorisée par lui à accorder cette licence.
Entité Légale : L'union de l'entité agissante et de toutes les autres entités contrôlant, contrôlées par ou sous contrôle commun avec cette entité.
Vous (ou Votre) : Une personne ou une entité légale bénéficiant des permissions accordées par cette licence. Source : La forme préférée pour apporter des modifications à l'œuvre, comme le code source logiciel, les fichiers de documentation, etc. Objet : Toute forme résultant d'une transformation mécanique ou de traduction d'une forme source, y compris le code compilé, la documentation générée et les conversions vers d'autres types de médias. Œuvre : L'œuvre d'auteur mise à disposition sous cette licence, comme indiqué par un avis de droit d'auteur inclus ou attaché à l'œuvre. Œuvres Dérivées : Toute œuvre, sous forme source ou objet, dérivée de l'œuvre originale. Contribution : Toute œuvre soumise intentionnellement par El Moumen Yassine ou un autre contributeur à l'œuvre. Contributeur : Toute personne ou entité ayant soumis une contribution intégrée dans l'œuvre.
Sous réserve des termes et conditions de cette licence, chaque contributeur vous accorde, à vous, une licence perpétuelle, mondiale, non exclusive, gratuite, sans redevance et irrévocable pour reproduire l'œuvre, préparer des œuvres dérivées, afficher publiquement l'œuvre, exécuter publiquement l'œuvre, sous-licencier et distribuer l'œuvre et les œuvres dérivées sous forme source ou objet.
Sous réserve des termes et conditions de cette licence, chaque contributeur accorde à vous une licence perpétuelle, mondiale, non exclusive, gratuite, sans redevance et irrévocable (sauf indication contraire dans cette section) pour fabriquer, faire fabriquer, utiliser, offrir à la vente, vendre, importer et transférer autrement l'œuvre. Cette licence s'applique uniquement aux revendications de brevet licenciables par ce contributeur qui sont violées par leur contribution seule ou par la combinaison de leur contribution avec l'œuvre à laquelle ces contributions ont été soumises. Si vous engagez une action en justice contre toute entité alléguant que l'œuvre ou une contribution constitue une violation de brevet, toute licence de brevet vous étant accordée pour cette œuvre cessera dès la date de dépôt de cette action.
Les copies de l'œuvre, sous forme source ou objet, doivent inclure une copie de cette licence. Les copies doivent clairement indiquer les modifications apportées à l'œuvre d'origine et être accompagnées d'un avis de droit d'auteur. Ce contrat ne vous accorde pas le droit d'utiliser les marques, logos ou autres éléments de propriété intellectuelle de l'auteur ou des contributeurs, sauf mention expresse et autorisation écrite.
L'œuvre est fournie "telle quelle", sans garantie d'aucune sorte, explicite ou implicite, y compris mais sans s'y limiter les garanties de qualité marchande, d'adéquation à un usage particulier ou de non-violation. L'auteur ou les contributeurs ne seront en aucun cas responsables des dommages directs, indirects, accessoires, spéciaux, exemplaires ou consécutifs, y compris la perte de données ou de bénéfices, découlant de l'utilisation ou de l'incapacité à utiliser l'œuvre. En aucun cas, l'auteur ou les contributeurs ne seront responsables envers vous ou toute autre personne pour des dommages indirects, accessoires, spéciaux ou consécutifs, ou pour des pertes de profits, de données ou d'autres pertes immatérielles, découlant de l'utilisation de l'œuvre.
En utilisant ou en distribuant l'œuvre, vous acceptez les termes et conditions de cette licence. Si vous n'acceptez pas ces conditions, vous n'êtes pas autorisé à utiliser ou distribuer l'œuvre. Des termes supplémentaires ou des restrictions peuvent être appliqués par des contributeurs spécifiques dans des sections séparées de la licence ou dans des fichiers de documentation associés. Ces termes doivent être respectés en tout temps lors de l'utilisation de l'œuvre.
Cette licence se termine automatiquement si vous ne respectez pas les conditions de la licence. À la fin de la licence, vous devez cesser toute utilisation de l'œuvre et en retirer toutes les copies.
nadim_project.html