¿Es posible montar Google Drive en vifm usando rclone?

¿Es posible montar Google Drive en vifm usando rclone?

Puedo montar mi Google Drive usando rclone mount gdrive: localfolder. También sé cómo montar automáticamente un sistema de archivos remoto a través sshfsde vifm. Pero, ¿es posible utilizarlo rclonepara montar una unidad en la nube vifmautomáticamente? Intenté agregar la siguiente línea en vifmrc:

filetype *.drive FUSE_MOUNT2|rclone %PARAM %DESTINATION_DIR

y cree un archivo llamado google.drivecon la siguiente línea:

mount gdrive:

Cuando intento abrir el archivo google.drive, vifm muestra el mensaje de intentar montarlo y luego se queda ahí para siempre.

Para ser más generales, ¿existe una forma genérica en vifm de manejar todo tipo de programas de montaje remoto?

Respuesta1

Tengo un problema similar y me topé con esta pregunta sin respuesta. Aquí está mi solución.

De forma predeterminada, el comando rclone mountpermanece ejecutándose en primer plano mientras el control remoto está montado, imprimiendo varios mensajes en la salida estándar. Esto es diferente de, digamos sshfs, que pide las credenciales en primer plano y termina. Para vifmfinalizar el proceso de montaje y aceptar nuevas entradas de usuario, rclone mountes necesario demonizar de alguna manera. Se puede hacer mediante --daemonbandera, sin embargo en este caso resulta que vifmsalta a la carpeta que acaba de crear y muestra su contenido antes de que finalice el proceso de montaje. Entonces obtendrás lo que parece ser una carpeta vacía. Al presionar CTRL-L(tal vez varias veces) se actualiza la lista de archivos y se muestra el contenido adecuado. Sin embargo, es un poco irritante.

El otro enfoque posible es escribir un script contenedor que demonice rclone mounty espere hasta que finalice el proceso de montaje. La espera se puede lograr, por ejemplo, con inotifywaito simplemente con sleep.

El script contenedor puede verse así:

#!/usr/bin/env bash

dest=$1; shift
nohup rclone mount $* "$dest" &> /tmp/rclone_gdrive.log &
inotifywait -me open "$(dirname "$dest")" | while read line; do
    echo "$line" | grep -q "$(basename "$dest")" && break
done
# or sleep 1

(No lo he probado lo suficiente, así que tengan cuidado) y en vifmrcusted puede colocar lo siguiente:

" Rclone mount
filetype *.drive
       \ {Mount google drive with rclone}
       \ FUSE_MOUNT2|<your wrapper script name> %DESTINATION_DIR %PARAM

Tenga en cuenta que esto %DESTINATION_DIRva antes %PARAMSaquí (a diferencia del ejemplo de la pregunta) porque eso es lo que espera el script contenedor proporcionado.

Lamentablemente, no sé la respuesta a la parte más general de su pregunta.

información relacionada