Estoy usando MacVim instalado a través de homebrew. La ruta absoluta de la aplicación es /usr/local/Cellar/macvim/xxxxxx/MacVim.app
con xxxxxx
el número de versión. El número de versión de MacVim se actualiza a menudo.
Ahora me gusta que mi aplicación sea accesible a través del Dock y el Launchpad. He creado un enlace simbólico en /Applications
señalando /usr/local/Cellar/macvim/8.2-163_2/MacVim.app
(por ahora) para que MacVim.app sea visible en el Launchpad, y he arrastrado el enlace simbólico en el Dock para acceder a él rápidamente. Por supuesto, la próxima vez que MacVim se actualice, la versión cambiará y tendré que arreglar el enlace simbólico.
¿Qué puedo hacer para tener una solución más permanente que no requiera arreglar el symlink cada vez que se actualiza MacVim?
La solución que pensé que podría funcionar:
- Utilice un
crontab
para actualizar regularmente el enlace simbólico - O utilice
launchctl
para hacer lo mismo - Configurar homebrew, si es posible, para utilizar siempre el mismo directorio
- Configurar homebrew para enganchar algún script después de actualizar MacVim para actualizar symlink
- Crear un nodo con controlador personalizado que
open()
,read()
yclose()
el archivo correcto
En el pasado puse en práctica la solución nº 1 y nº 2, pero me parece bastante engorroso. Cada minuto se ejecuta el comando para actualizar el symlink, pero el 99,99% de las veces no hace nada Parece más bien un hacky solución para mí. Si es posible, preferiría ejecutar el comando sólo cuando sea necesario. La solución #3 y #4 son mucho mejores, pero no he encontrado nada sobre gancho en la cerveza casera. Y la solución #5 parece un poco dura para una tarea tan trivial.
¿O me estoy perdiendo algo obvio?
Un poco más de explicaciones como se pide en el comentario
Solución 1
Se puede utilizar un comando de una línea en el crontab:
* * * * * ln -fs "$(find '/usr/local/Cellar/macvim' -name 'MacVim.app' | head -n 1)" /Applications/MacVim.app
Solución 2
Lo mismo que crontab, pero utilizando una tarea programada. No encuentro esta solución particularmente mejor que el crontab, excepto que está usando un planificador más "moderno".
Solución 3 y 4
Es una suposición, pero esperaba que hubiera alguna función en homebrew para ejecutar un comando después de que se actualice un paquete. Entonces simplemente ejecutaría el mismo comando que en el crontab cuando se actualice MacVim. Lo que me gusta de esta solución, es que el comando sólo se ejecuta cuando se necesita, no cada minuto.
Solución 5
No he mirado en profundidad en esta solución ya que es definitivamente más avanzada. Sólo sé que es posible crear un dispositivo de carácter personalizado con un controlador personalizado. El único requisito es implementar el open
, read
y close
comando. Así que técnicamente, cada vez que el sistema pide /Applications/MacVim.app
lo que realmente hace la escena es listar el contenido de la carpeta /usr/local/Cellar/macvim
, tome la primera carpeta de la lista y lea el contenido de la carpeta MacVim.app
en dicha carpeta. Similar a un symlink, pero específico para mi necesidad.