# nmm

Gestionnaire de modules Nelson.

## 📝 Syntaxe

* st = nmm('list')
* nmm('load', module\_name)
* l = nmm('autoload', module\_name)
* nmm('autoload', module\_name, state)
* nmm('install', git\_url)
* nmm('uninstall', module\_name)
* package\_filename = nmm('package', module\_name, destination\_dir)

## 📥 Argument d'entrée

* module\_name - chaîne : nom court du module.
* state - logique : true active le chargement automatique du module au démarrage, false désactive l'autoload pour ce module.
* git\_url - chaîne : une URL git (protocole http/https).
* destination\_dir - chaîne : répertoire de destination existant où l'archive sera créée.

## 📤 Argument de sortie

* st - struct : liste des modules installés.
* l - logique : état courant de l'autoload.
* package\_filename - chaîne : nom du fichier.

## 📄 Description

nmm est le gestionnaire de modules Nelson.

Les paquets distribués au format source permettent d'obtenir des paquets optimisés pour votre machine et de disposer de dépôts distribués.

Les modules installés sont compilés localement et peuvent nécessiter un compilateur C/C++.

st = nmm('list') récupère la liste des modules installés.

nmm('install', git\_url) installe un module distant.

Par exemple : '<https://github.com/nelson-lang/module\\_skeleton\\_basic.git#v1.0.0>'

'#v1.0.0' est un*commit-ish*: il permet de cloner exactement un commit.

Le commit-ish peut être un tag (version exacte), un sha1 (commit exact) ou un nom de branche.

Sans commit-ish, la branche master sera utilisée.

nmm('install', filename\_nmz) installe un module externe précompilé.

nmm('load', module\_name) charge un module installé pour la session courante.

l = nmm('autoload', module\_name retourne l'état courant d'autoload pourmodule\_name.

nmm('autoload', module\_name, state) marque un module installé pour être chargé automatiquement au démarrage.

Par défaut, les modules sont marqués pour l'autoload.

nmm('uninstall', module\_name) désinstalle un module installé.

nmm('package', module\_name, destination\_dir) empaquette un module dans un fichier zip.

## 💡 Exemples

Deploy module\_skeleton\_basic template

```matlab
if ~ismodule('module_skeleton_basic')
    nmm('install', 'https://github.com/nelson-lang/module_skeleton_basic.git#v1.0.0');
    macro_sum(3, 4)
    nmm('uninstall', 'module_skeleton_basic')
end
```

Package easily a module

```matlab
if ~ismodule('module_skeleton_basic')
    nmm('install', 'https://github.com/nelson-lang/module_skeleton_basic.git#v1.0.0');
end
package_filename = nmm('package', 'module_skeleton_basic', tempdir())

```

## 🔗 Voir aussi

[ismodule](https://nelson-9.gitbook.io/Nelson/markdown/fr/modules_manager/ismodule), [getmodules](https://nelson-9.gitbook.io/Nelson/markdown/fr/modules_manager/getmodules).

## 🕔 Historique

| Version | 📄 Description   |
| ------- | ---------------- |
| 1.0.0   | version initiale |
