¿Puedo generar un enlace en el que se pueda hacer clic a un archivo local utilizando una ruta relativa como "archivo:///~"?

Este es el fondo:

en mi empresa, usamos Google Drive y, a menudo, tenemos que decirnos la ruta a un archivo en particular. Las rutas son largas ya que usamos muchas carpetas anidadas, por lo que es bastante aburrido y lleva mucho tiempo navegar por todo eso.

Ahora, en mi empresa anterior, usábamos un servidor afp central, por lo que la ruta era común para todos, por lo tanto, había creado un script applescript que podía obtener la ruta afp absoluta al archivo, la gente pegaba esa ruta en un correo o chat y el usuario final podía hacer clic en esa ruta que automáticamente se convertía en un enlace y el buscador se abría, seleccionando ese archivo o carpeta en particular al que conducía el enlace.

La razón por la que no puedo usar exactamente el mismo script es que la carpeta de Google Drive está en la carpeta de inicio del usuario. Entonces, si el nombre del usuario es Foo, la ruta será file:///Users/Foo/Google Drive, mientras que para el usuario Bar, la ruta seráfile:///Users/Bar/Google Drive

Claramente, la ruta generada por el usuario Foo no funcionará para el usuario Bar

Dado que, al menos en la terminal, la ruta es file:///Users/usernameigual a ~, hice que mi secuencia de comandos generara enlaces como file:///~/Google Drive/pathToFolder, pero no funcionan :( Al hacer clic en dicho enlace se abrirá el buscador, pero no se seleccionará el archivo o la carpeta correctos

Esto me está volviendo loco porque parece que debería funcionar, pero simplemente no funciona... ¿hay alguna otra sintaxis que deba probar? ¿Cualquier sugerencia?

¡Gracias de antemano!

¿Tiene acceso a las máquinas que abrirán estos enlaces?
Sí, lo hago, somos una empresa pequeña, solo 7 máquinas diferentes
Podrías probar LinCastor (no tengo tiempo para escribir una respuesta en este momento, pero espero que eso ayude un poco)
Exacto, eso es lo que he hecho y funcionó a las mil maravillas :)
¡Excelente! ¿Puedes publicarlo como respuesta para que otras personas puedan ver lo que hiciste?

Respuestas (1)

Aquí está la solución. El script que genera el enlace genera una URL que comienza con una personalizada googledrive://y luego la ruta al archivo en la carpeta de Google Drive.

Luego configuré lincastor para activar el siguiente script para las direcciones URL que comienzan congoogledrive://

on handle_url(args)
    set theUnixPath to |URL_PATH| of args
    set theUnixPath to (POSIX path of (path to home folder)) & "Google Drive" & theUnixPath
    set theMacPath to (POSIX file theUnixPath)

    #display dialog "handle url: " & theMacPath 

    tell application "Finder"
        set theItem to item theMacPath
        if (class of theItem) is folder then activate
        reveal theItem
    end tell
    activate application "Finder"

    return 1
end handle_url

El script es muy fácil, toma la URL, adjunta la ruta a la carpeta de inicio del usuario y /Google Drive/luego usa esta ruta generada para abrir el Finder y revelar el elemento.