Les scripts, en cours de développement, doivent aussi tourner sous OpenBSD. Quelques particularités…
Par défaut, la commande xxd n’existe pas. Il faut installer le packet vim pour l’avoir.
La commande sha256sum sous Linux est renommée sha256 sous OpenBSD. Il faut adapter le script pour reconnaître l’OS.
Pour la commande ‘sha256sum’, il est préférable de la remplacer dans les scripts par ‘openssl sha256′.
Cela fonctionne pareil à l’exception de la réponse qui commence par le nom de fichier et termine par le hash, et non l’inverse sur ‘sha256sum’. Mais l’extraction du hash n’est pas plus compliquée pour autant, et ça marche ainsi sur tout UNIX avec opnessl…
Les commandes ‘ls’ et ‘date’ n’acceptent pas les mêmes options. Cela pose problème pour générer une date au bon format, soit depuis la date courante, soit depuis la date de création d’un fichier.
Pour les options de la commande ‘date’, il manque la possibilité de faire une sortie au format ISO 8601.
C’était réalisé avec les options :
date –iso-8601=seconds
Cela peut être réalisé par cette commande :
date +%FT%T%z
Et cela marche partout!
Pour la commande ‘ls’, j’ai changé de commande… et choisi ‘stat’.
Mais celle-ci ne fonctionnant pas tout à fait pareil sous Linux et sous OpenBSD, j’ai mis en place un test sur l’OS.
Dans le script, ça donne quelque chose comme ça :
if [ « $(uname -s) » == « OpenBSD » ]
then export DATE=$(stat -l -t « %FT%T%z » « $nebule_progrep/$1.pub.pem » | cut -d ‘ ‘ -f 6)
else export DATE=$(stat -c « %z » « $nebule_progrep/$1.pub.pem » | awk ‘{print $1 « T » substr($2,0,8) $3}’)
fi
Et… maintenant je me rends compte que les commandes ‘seq’ et ‘mimetype’ sont inconnues…
La commande ‘mimetype’ peut être remplacée par ‘file -i -b file.ext | cut -d ‘;’ -f 1′.
Et ça passe sous Linux et openBSD.