J'utilise MacVim installé via homebrew. Le chemin absolu vers l'application est /usr/local/Cellar/macvim/xxxxxx/MacVim.app
avec xxxxxx
le numéro de version. Le numéro de version de MacVim est souvent mis à jour.
J'aimerais maintenant que mon application soit accessible par le Dock et le Launchpad. J'ai créé un lien symbolique dans /Applications
pointant vers /usr/local/Cellar/macvim/8.2-163_2/MacVim.app
(pour l'instant) afin que MacVim.app soit visible dans le Launchpad, et j'ai glissé le lien symbolique dans le Dock pour y accéder rapidement. Bien sûr, à la prochaine mise à jour de MacVim, la version changera et je devrai corriger le lien symbolique.
Que puis-je faire pour avoir une solution plus permanente qui ne nécessite pas de réparer le lien symbolique à chaque mise à jour de MacVim ?
La solution que j'ai trouvée pourrait fonctionner :
- Utilisez un
crontab
pour mettre à jour régulièrement le lien symbolique - Ou utilisez
launchctl
pour faire la même chose - Configurer homebrew, si possible, pour utiliser toujours le même répertoire
- Configurer homebrew pour accrocher un script après la mise à jour de MacVim pour mettre à jour le lien symbolique.
- Créer un nœud avec un pilote personnalisé qui
open()
,read()
etclose()
le bon dossier
J'ai mis en œuvre les solutions #1 et #2 dans le passé, mais je trouve cela assez désordonné. Toutes les minutes, la commande de mise à jour du lien symbolique est exécutée, mais dans 99,99% des cas, elle ne fait rien. Cela ressemble plutôt à un hacky solution pour moi. Si possible, je préférerais exécuter la commande uniquement lorsqu'elle est nécessaire. Les solutions #3 et #4 sont bien meilleures, mais je n'ai rien trouvé sur crochet en homebrew. Et la solution n°5 semble un peu hardcore pour une tâche aussi triviale.
Ou est-ce que je rate quelque chose d'évident ?
Un peu plus d'explications comme demandé dans le commentaire
Solution 1
Une commande d'une ligne dans la crontab peut être utilisée :
* * * * * ln -fs "$(find '/usr/local/Cellar/macvim' -name 'MacVim.app' | head -n 1)" /Applications/MacVim.app
Solution 2
Identique à crontab, mais utilisant une tâche planifiée. Je ne trouve pas cette solution particulièrement meilleure que la crontab, sauf qu'elle utilise un planificateur plus "moderne".
Solutions 3 et 4
C'est une supposition, mais j'espérais qu'il y avait une fonctionnalité dans homebrew pour lancer une commande après la mise à jour d'un paquet. Je pourrais alors simplement exécuter la même commande que dans la crontab lorsque MacVim est mis à jour. Ce que j'aime dans cette solution, c'est que la commande n'est lancée que lorsqu'elle est nécessaire, et non pas toutes les minutes.
Solution 5
Je n'ai pas étudié cette solution en profondeur, car elle est certainement plus avancée. Je sais seulement qu'il est possible de créer un périphérique de caractères personnalisé avec un pilote personnalisé. La seule exigence est d'implémenter la fonction open
, read
et close
commandement. Donc techniquement, à chaque fois que le système demande /Applications/MacVim.app
ce qu'il fait réellement dans la scène est de lister le contenu du dossier. /usr/local/Cellar/macvim
prenez le premier dossier de la liste, et lisez le contenu du fichier MacVim.app
dans ledit dossier. Similaire à un lien symbolique, mais spécifique à mon besoin.