Un wrapper c'est juste un terme qui désigne un script qui "enveloppe" un autre logiciel. Example concret, pour utiliser la commande "
pass", j'ai d'abord besoin de monter un dossier avec sshfs. J'ai donc un wrapper qui s'appelle "pass", qui est sur mon $PATH avant le vrai "pass" (donc quand je tape "pass", il va d'abord trouver le wrapper dans $HOME/.bin avant celui de /usr/bin), et c'est just un script qui ressemble à ça :
#!/bin/sh
# wrapper for pass
# check and mount sshfs if needed
retval=$(ls ~/.password-store|wc -l)
if [ "$retval" -lt 1 ];then
echo "Mounting sshfs…"
sshfs server:.password-store ~/.password-store
fi
/usr/bin/pass "$@"
Donc ce script monte le dossier distant si c'est pas déjà fait et passe la suite des arguments à la vraie commande pass. Pour l'utilisateur c'est transparent. Il utilise pass comme si de rien n'était (à part au début où sshfs monte le dossier).
Bon mais en fait ce que tu vas faire c'est pas vraiment un wrapper, c'est juste un script qui s'exécute quand on lui demande, ou au login de l'utilisateur.
Tu pourras imaginer un truc du genre (ATTENTION: pseudocode, j'écris ça sans le tester c'est juste pour te monter) :
#!/usr/bin/env bash
# mount the nas
# ne rien faire si c'est déjà monté
if [ $(mount|grep nas) ]; then
exit 0
fi
# ou un truc genre ls /mnt/nas et voir si y'a de l'output
sudo mount -t cifs -t cifs -o credentials=/home/$USER/.cred,uid=<uid>,gid=<gid> //192.168.0.7/MonDossier /home/$USER/nas
# penser à autoriser mount sans mot de passe dans la config de sudo, ou utiliser gksudo pour demander le mot de passe lors du lancement du script (donc le script ne sera pas lancé au login)
# remplacer gid et uid par ceux de l'utilisateur qui lance le script afin qu'ils puissent lire et écrire dessus
Bon après ça c'est une façon de faire mais il y en a d'autres sûrement.