вторник, 12 марта 2024 г.

Монтирование облака с помощью rclone через форму выбора

Цель: смонтировать выбранное облако через rclone c помощью вызова кнопки запуска приложения.

Ожидаемый результат: в форме выбора желаемого облака оно будет смонтировано в указанную папку.

Несмотря на то что в источниках программного обеспечения Ubuntu или Linux Mint имеется программа графического управления работой rclone (rclone-browser) вопрос о монтировании выбранного облака можно решать через свой скрипт.

Пример:

В указанной форме в столбце выбора щелчком мыши выделяется желаемое облако и после нажатия кнопки OK оно будет смонтировано в папку для монтирования внешних ресурсов. К примеру, в рассматриваемом скрипте это папка /home/minter/Mount

Создаётся файл sh с содержанием (пример):

#!/bin/bash
zenity --width=50 --height=330 --list --title="Монтировать облако" --checklist --editable --column=" Выбор " --column " Имя по rclone " --text= "" "dropbox" "" "koofr" "" "pcloud" "" "mailru" "" "yandex" "" "mega"  "" "onedrive" "" "box.net" "" "jottacloud" > /tmp/mount.txt
rclone mount --vfs-cache-mode writes $(cat /tmp/mount.txt): /home/minter/Mount &
exit

Первые три строки определяют форму запроса (см. рисунок выше) и осуществляют запись выбранного облака в файл /tmp/mount.txt

Если ничего не будет выбрано или окно формы будет закрыто по кнопке закрытия окна, то ничего смонтировано не будет, так как создаваемый файл /tmp/mount.txt будет пустым, то есть будет иметь нулевой размер. 

Записи dropbox, koofr, pcloud ... в качестве примера. Вам необходимо будет указать имя подключения, которое было назначено при настройке ПО rclone. Эти имена можно подсмотреть в файле настроек rclone. Для этого откройте файл rclone.conf, который расположен по пути ~/.config/rclone в вашей домашней папке. Имя подключения будет указано в квадратных скобках, например, [kgm2]. 

Далее запускается собственно монтирование облака в выбранную папку. В данном примере это папка /home/minter/Mount  Имя подключения считывается из файла /tmp/mount.txt и подставляется в команду монтирования через $(cat /tmp/mount.txt):  Обратите внимание, что в команде подключения всего облака имя подключения должно завершаться двоеточием (синтаксис rclone). Следующий за командой монтирования символ & означает, что завершение выполнения монтирования облака ожидаться не будет и собственно скрипт sh прекратит свою работу. Активной останется только выполняемая команда 

rclone mount --vfs-cache-mode writes $(cat /tmp/mount.txt): /home/minter/Mount

Для отключения (отмонтирования облака) используйте соответствующую кнопку файлового менеджера, то есть точно так же, как и в случае с подключаемой флэшкой или другим внешним носителем.

☑  Дополнение. Как вариант, можно организовать автоматическое открытие папки Mount в новом окне файлового менеджера. При этом производится дополнительная проверка файла mount.txt на введённое значение. То есть, если нажимается кнопка "Отменить", то в файл mount.txt ничего записано не будет и не будет производиться ни попытки монтирования, ни автоматического открытия папки Mount. Пример:

#!/bin/bash
zenity --width=50 --height=330 --list --title="Монтировать облако" --checklist --editable --column=" Выбор " --column " Имя по rclone " --text= "" "dropbox" "" "koofr" "" "pcloud" "" "mailru" "" "yandex" "" "mega"  "" "onedrive" "" "box.net" "" "jottacloud" > /tmp/mount.txt
if [ -s /tmp/mount.txt ]; then
    rclone mount --vfs-cache-mode writes $(cat /tmp/mount.txt): /home/minter/Mount &
    #  ✔  Дать системе время, чтобы она успела смонтировать облако.
   
#  Цифру (число задержки в секундах) подберите экспериментально,
   
#   исходя из быстродействия вашей системы и скорости Интернет.
    sleep 2
❗ Выберите одну из двух следующих строк, исходя из применяемого Вами менеджера файлов (графического окружения)
    
nemo --tabs /home/minter/Mount & # для Cinnamon
    thunar /home/minter/Mount & # для xfce
  else
    :
fi
exit

Создайте в своей папке ~/.local/share/applications файл (например, mount.desktop), который будет являться кнопкой запуска скрипта sh  Пример:

[Desktop Entry]
Name=Mount cloud
Exec=полный_путь_до_скрипта_sh
Comment=Смонтировать Cloud
Terminal=false
PrefersNonDefaultGPU=false
Icon=имя_значка_под_которым_ кнопка_будет_отображаться
Type=Application
Categories=GTK;Development;
Name[ru]=Смонтировать облако

В приводимом примере кнопка отображается в меню "Разработка". Если нужно чтобы кнопка отображалась в "Прочие", то удалите эту строку.

Строка Name[ru]= указывает, что кнопка запуска должна отображаться не как "Mount cloud", а как "Смонтировать облако". Строка не обязательная и её также можно убрать.

Сделайте созданный файл исполняемым.

Комментариев нет:

Отправить комментарий