J'écris un script shell avec quelques variables qui devraient être configurées par l'utilisateur. Il y aura un programme d'installation pour télécharger et configurer le script, éventuellement en posant une série de questions. Le script en question s'adresse à d'autres développeurs.
Cela peut être mis en œuvre de plusieurs manières:
Utilisez des espaces réservés dans le script lui-même et utilisez-les
sed
pour les remplacer lors de l'installation (quelque chose comme ceci: /programming/415677/how-to-replace-placeholders-in-a-text-file )Avantages: Toutes les définitions de variables sont contenues dans le script. Il est facile de télécharger le script manuellement et de configurer les variables pour les utilisateurs qui préfèrent un éditeur à l'installateur.
Inconvénients: il est difficile de reconfigurer les variables via le programme d'installation une fois qu'elles sont en place. À moins que je ne crée une expression rationnelle plus complexe qui serait sujette à des erreurs.
Utilisez un fichier de configuration , essentiellement un autre script shell avec des affectations, et utilisez-le
source
pour l'inclure. (Et probablement le placer dans~/.scriptname
? Le script principal est copié/usr/local/bin
)Avantages: Il est facile de reconfigurer le script. Pourrait même ajouter un paramètre pour le faire à partir du script principal (fonctionnerait probablement dans la première solution également, mais l'édition d'un script à partir de lui-même ne semble pas être une très bonne idée)
Inconvénients: le script dépend maintenant de deux fichiers et l'utilisateur doit exécuter le programme d'installation pour que le fichier de configuration soit créé. Cela peut être résolu en générant automatiquement un fichier de configuration s'il n'en existe pas. Mais localiser un fichier de configuration externe sera toujours plus lourd pour les utilisateurs qui souhaitent simplement télécharger le script, le modifier et en finir avec.
En outre, quelques options concernant la façon dont la configuration doit être gérée par l'utilisateur après l'installation:
Git comme
$ myscript config server.host example.org $ myscript config server.proxypath / home / johndoe / proxy $ myscript config server.httppath / home / johndoe / webInteractive
$ myscript config
Entrez le nom d'hôte du serveur: example.org
Entrez le chemin d'accès au proxy sur le serveur: / home / johndoe / proxy
Entrez le chemin d'accès au répertoire http sur le serveur: / home / johndoe / webgetopts avec de longues options
$ myscript --host example.org --proxypath / home / johndoe / proxy --httppath / home / johndoe / web
Config $ myscript simple example.org / home / johndoe / proxy / home / johndoe / web
Y a-t-il d'autres façons de procéder que vous envisageriez?
Des bonnes pratiques, quelque chose d'élégant?