Автоматизация подключения SFS и запуска программ

Автор: bicyclist56
Опубликовано: 4396 дней назад (12 апреля 2012)
Редактировалось: 5 раз — последний 24 мая 2012
+1
Голосов: 1
Cкрипт (для каждого SFS свой) подключает SFS, и сразу запускается главная программа из этого пакета. После работы с программой вновь жмем на этот же скрипт (или на его ярлык), программа закрывается, а SFS отключается. Для скрипта можно сделать ярлык, кому где удобно, хоть в панели, хоть на раб.столе. Меньше телодвижений в результате  smile  
Заботиться о сохранении результатов работы с программой нужно самому пользователю заранее, перед отключением.
В начало скриптов вынесены переменные, чтобы не искать, что менять, во всем тексте:
PATH_SFS - путь к SFS (может быть и один для всех)
SFS - название SFS (без .sfs, так было проще копировать из названия)
START - запускаемый файл программы с полным путем (смотрим в соответствующем файле в /usr/share/applications/, можно просто в распакованном SFS)
SERVICE - главный процесс (который приходится искать в терминале, давая команду ps, напрягая зрение и немного мозги, при подключенном обычным образом SFS)
Надеюсь, асы скриптописания (я если и ас, то только метода тыка) помогут доработать это дело. Может быть, стоит добавить по ИЛИ условие подключенности SFS (наличие папки /mnt/.name.sfs? - что-то у меня не получилось), тогда и при закрытой программе, при запуске скрипта, SFS отключался бы. А так, при щелчке по ярлыку вновь запускается закрытая программа.
У меня все SFS поключаются из левой панели, и ярлыкам там назначены иконки, которые появляются в системе только при подключенном SFS. Поэтому я вижу, что у меня подключено, а что нет, весьма удобно. Займусь, пожалуй, всеобщим переводом запуска своих многочисленных SFS на новые рельсы. Возможно, что-то не пожелает подчиняться моим законам...smile
Несколько примеров (из которых ясно, что нечто универсальное сделать затруднительно).
Gimp-Full-2.6.10-Lucid_528
#!/bin/bash

PATH_SFS='/mnt/home/SFS'
SFS='Gimp-Full-2.6.10-Lucid_528'
START='/usr/bin/gimp-2.6'
SERVICE='gimp-2.6'

if ps -r | pgrep $SERVICE > /dev/null
  then
    killall $SERVICE
    sleep 1
    umount -l /mnt/.$SFS
    sleep 2
    rm -r /mnt/.$SFS
    fixmenus
  else
    mkdir /mnt/.$SFS
    mount -o loop $PATH_SFS/$SFS.sfs /mnt/.$SFS
    mount -o remount,append:/mnt/.$SFS /
    sleep 3
    fixmenus
    $START &
fi

Google_Earth-6.0.3.2197-lucid_528

PATH_SFS='/mnt/home/SFS'
SFS='Google_Earth-6.0.3.2197-lucid_528'
START='/usr/bin/googleearth'
SERVICE='googleearth-bin'
...

bt-sendfile_528

PATH_SFS='/mnt/home/SFS'
SFS='bt-sendfile_528'
START='/usr/lib/bt-manager/launcher.sh'
SERVICE='wish'
...

Аналогично можно делать скрипты-триггеры (и ярлыки) для запуска/закрытия программ.
conky_toggle:
Код:
#!/bin/bash

SERVICE='conky'

if ps -r | pgrep $SERVICE > /dev/null
  then
    killall $SERVICE
  else
    $SERVICE
fi
Где еще столько ПО, как в моей Иванне? | wine1.5.2
Теги: sfs, ivanna