Сайт | Скачать | Видео | Wiki

Автор Тема: Доработка sfs_event  (Прочитано 21758 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн dim-kut

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1021
  • Репутация: +41/-0
  • Автор темы
Доработка sfs_event
« : 20 Декабрь 2012, 22:34:42 »
1. При загрузке надо выполнять файл /usr/local/sfs_event/sfs_all_off Он переводит все зеленые значки в меню в красные. Прописан в /etc/rc.d/init.d/loadsfs, но в 218 похоже не выполняется.
2. /usr/local/sfs_event/sfs_all_off я поправил, чтобы он выключал pfs-ы, на прицепе.
3. sfs_add я поправил, чтобы он показывал каталог подключенного pfs, на прицепе.

Заметил вот что:
при подключении sfs создается каталог /mnt/.имя
при подключении pfs создается каталог /mnt/.имя.pfs
Я с этим справился при открытии каталога, но лучше привести к одному виду, создает путаницу.

Наверное ещё придется дорабатывать, замечания, пожелания, пишите ниже. Хорошо бы добавить в окна короткий текст про PFS, скажите какой - добавлю. Или могу сделать кнопку для справки, если её кто-нибудь напишет.
Engineering is the art of making what you want from things you can get.

Оффлайн Pro

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re:Доработка sfs_event
« Ответ #1 : 21 Декабрь 2012, 01:49:30 »
Справку ненадо, программа проста и функциональна.

Фокус ввода в окне подключения на кнопку подключения бы перевести.
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн dim-kut

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1021
  • Репутация: +41/-0
  • Автор темы
Re:Доработка sfs_event
« Ответ #2 : 21 Декабрь 2012, 08:35:16 »
Справку ненадо, программа проста и функциональна.
Я имел в виду справку по особенностям и различиям SFS и PSF-модулей. Я темой не владею, сам написать не могу. А прочитал бы обязательно :)
Engineering is the art of making what you want from things you can get.

Оффлайн Pro

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re:Доработка sfs_event
« Ответ #3 : 21 Декабрь 2012, 09:44:06 »
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн Zay

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1536
  • Репутация: +25/-0
Re:Доработка sfs_event
« Ответ #4 : 21 Декабрь 2012, 15:00:29 »
Скрипт pfsload (а также GUI-скрипты open_pfs и loader_fs) теперь поддерживают не только .pfs и .sfs файлы, но и файлы 2/3/4fs, разделы Ext2/3/4 и каталоги на таких разделах.
Кроме того, в некоторых случаях модуль копируется в tmpfs перед подключением.

Желательно везде в текстах поменять "Модули SFS" на  "Файловые системы",

Предлагаю рассмотреть вариант использования консольных скриптов pfsload и pfsunload вместо графических load_sfs_nomenu и unload_sfs_nomenu (при этом графические сообщения об удачном / неудачном монтировании должен будет выдавать сам sfs_event, по результату выполнения консольного скрипта).


при подключении sfs создается каталог /mnt/.имя
при подключении pfs создается каталог /mnt/.имя.pfs
В новой версии исправлено, но желательно проверить.

Про отличия PFS от SFS написано в спецификации.
Если кратко - в PFS всегда присутствует информация о встроенных пакетах, какие файлы к каким пакетам относятся и т.д.
Список пакетов, которые встроены в file.pfs можно получить командой pfsinfo /file.pfs.


Оффлайн dim-kut

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1021
  • Репутация: +41/-0
  • Автор темы
Re:Доработка sfs_event
« Ответ #5 : 21 Декабрь 2012, 20:14:44 »
Желательно везде в текстах поменять "Модули SFS" на  "Файловые системы",
"Файловые системы" - верно по сути, но как-то ни о чём. Может лучше "Файловые модули" ? У меня в голове такое название лучше укладывается.

Предлагаю рассмотреть вариант использования консольных скриптов pfsload и pfsunload вместо графических load_sfs_nomenu и unload_sfs_nomenu (при этом графические сообщения об удачном / неудачном монтировании должен будет выдавать сам sfs_event, по результату выполнения консольного скрипта).
Я это себе так представляю:
Сейчас sfs_event получает из скриптов один параметр - имя модуля с полным путем. Надо добавить ещё два параметра - текст сообщения и 0 или 1 - соотв. была операция успешной или нет. Текст будет выводиться в начале работы sfs_event в любом случае, а если отключение-подключение было неуспешным, то после вывода сообщения программа завершается - нет смысла ещё чего-то делать. Так можно работать с консольными скриптами. Ну и оставить совместимость для вызова с одним параметром, как сейчас.
Устроит так ?
Engineering is the art of making what you want from things you can get.

Оффлайн Zay

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1536
  • Репутация: +25/-0
Re:Доработка sfs_event
« Ответ #6 : 21 Декабрь 2012, 21:25:22 »
"Файловые системы" - верно по сути, но как-то ни о чём. Может лучше "Файловые модули" ?
Целые разделы тоже могут быть смонтированы GUI-обёртками pfsload'а в корень AUFS, поэтому "модули" не совсем правильно. Надо подумать...

Желательно стандартизировать "общение" скриптов sfs_event c остальными скриптами.
Если модуль подключён - вызываем одну команду (sfs_add), если не подключён - другую (sfs_remove), с одним параметром (полное название файла).

Скрипт pfsload сам не вызывает sfs_event, его вызывают GUI-скрипты после вызова pfsload и проверки результата (вывод 0).
Поэтому при нажатии кнопки "Подключить модуль" / "Отключить модуль" в sfs_event можно запускать pfsload / pfsunload без доп. параметров (-nomenu). Но в этом случае проверка результата работы pfsload (0 или 1) и вывод на экран сообщения - задача sfs_event'a (сейчас это делает load_pfs).

ИМХО, sfs_event'у очень не хватает команды "обновить информацию", по которой скрипт проверял бы все модули и менял значки соответственно их состоянию.
Информацию о том, какие модули в данный момент подключены и где они находятся можно получить парсингом вывода busybox mount и losetup-FULL (пример кода есть в скрипте mount_file).

Оффлайн dim-kut

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1021
  • Репутация: +41/-0
  • Автор темы
Re:Доработка sfs_event
« Ответ #7 : 22 Декабрь 2012, 10:22:30 »
Zay,
Желательно стандартизировать "общение" скриптов sfs_event c остальными скриптами.
Если модуль подключён - вызываем одну команду (sfs_add), если не подключён - другую (sfs_remove), с одним параметром (полное название файла).
Ну так сейчас и есть.

Скрипт pfsload сам не вызывает sfs_event, его вызывают GUI-скрипты после вызова pfsload и проверки результата (вывод 0).
Поэтому при нажатии кнопки "Подключить модуль" / "Отключить модуль" в sfs_event можно запускать pfsload / pfsunload без доп. параметров (-nomenu). Но в этом случае проверка результата работы pfsload (0 или 1) и вывод на экран сообщения - задача sfs_event'a (сейчас это делает load_pfs).
pfsload / pfsunload будут работать со всеми модулями? В перспективе мы переходим на них? Я когда-то встречал на форуме список pfs-скриптов с объяснениями, но сейчас не нашел :(

ИМХО, sfs_event'у очень не хватает команды "обновить информацию", по которой скрипт проверял бы все модули и менял значки соответственно их состоянию.
Да, так можно отвязать sfs_event от всех скриптов, но проблема в том, что такая проверка должна тарахтеть постоянно, примерно 1 раз в секунду, а это лишняя нагрузка на комп. IMHO лучше вызывать по необходимости.

Есть ещё вариант - сделать mount-скрипт, вызывать в нем бинарный mount, и если надо - sfs_event.
Engineering is the art of making what you want from things you can get.

Оффлайн Pro

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re:Доработка sfs_event
« Ответ #8 : 22 Декабрь 2012, 10:32:49 »
mount скрипт в системе присутствует, можно внести изменения
знать бы какие
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн Zay

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1536
  • Репутация: +25/-0
Re:Доработка sfs_event
« Ответ #9 : 22 Декабрь 2012, 15:34:16 »
pfsload / pfsunload будут работать со всеми модулями? В перспективе мы переходим на них?
Работают с любыми модулями, ФС и т.д.
Уже перешли. Сейчас все скрипты в системе, которые монтируют модули, вызывают для этого pfsload / pfsunload.

Я когда-то встречал на форуме список pfs-скриптов с объяснениями, но сейчас не нашел :(
Реализация .PFS (тестирование)
Информация немного устарела, возможностей стало больше (всё никак не соберусь написать полную справку). Но основные возможности там описаны.

Да, так можно отвязать sfs_event от всех скриптов, но проблема в том, что такая проверка должна тарахтеть постоянно, примерно 1 раз в секунду, а это лишняя нагрузка на комп. IMHO лучше вызывать по необходимости.
Крутить в цикле действительно не нужно, лучше вызывать при необходимости.
Отличие от существующего варианта - хотелось бы чтобы sfs_event не требовал названия конкретного модуля, а сам проверял их все.
Это было бы наиболее универсальным решением, ИМХО.

Оффлайн dim-kut

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1021
  • Репутация: +41/-0
  • Автор темы
Re:Доработка sfs_event
« Ответ #10 : 22 Декабрь 2012, 15:44:10 »
mount скрипт в системе присутствует, можно внести изменения
знать бы какие
Да вот нет его там (качал с mirror.yandex, файл от 13 дек.) umount-скрипт есть, а mount - ссылка на busybox.

Я думаю, это самый лучший вариант - привязать sfs_event к mount/umount скриптам. Это будет работать автоматически для скриптов и программ, вызывающих mount/umount.
Engineering is the art of making what you want from things you can get.

Оффлайн Pro

  • Модератор
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
Re:Доработка sfs_event
« Ответ #11 : 22 Декабрь 2012, 15:55:17 »
раньше был, потом убрали, щас опять вернули - см. тему со списком изменений дистрибутива
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн Zay

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1536
  • Репутация: +25/-0
Re:Доработка sfs_event
« Ответ #12 : 22 Декабрь 2012, 15:57:49 »
Я думаю, это самый лучший вариант - привязать sfs_event к mount/umount скриптам. Это будет работать автоматически для скриптов и программ, вызывающих mount/umount.
По какому принципу это будет сделано?
Проверка конкретного файла, или при вызове будут проверяться все модули (как я предлагал выше)?

Оффлайн dim-kut

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 1021
  • Репутация: +41/-0
  • Автор темы
Re:Доработка sfs_event
« Ответ #13 : 22 Декабрь 2012, 16:26:21 »
По какому принципу это будет сделано?
Проверка конкретного файла, или при вызове будут проверяться все модули (как я предлагал выше)?

Проверка текущего файла. Я набросал предварительно для umount, но не проверял ещё. Это конец скрипта.
Код
####### dim-kut added it for sfs_event calling #######
if [ $RETVAL -eq 0 ];then
# extension is .sfs , .pfs and full path
if [ ! "`echo "$@" | grep -F -e .sfs -e .pfs`" = ""  -a "`echo "$@" | grep -F ./`" = "" ];then
exec /usr/local/sfs_remove "$@"
fi
fi
######################################################

exit $RETVAL

Только надо будет sfs_add и sfs_remove подправить, т.к. им будут передаваться все параметры mount/umount, а не только путь/имя.
Engineering is the art of making what you want from things you can get.

Оффлайн Zay

  • Почетный участник
  • Ветеран
  • *
  • Сообщений: 1536
  • Репутация: +25/-0
Re:Доработка sfs_event
« Ответ #14 : 23 Декабрь 2012, 12:54:38 »
Т.е. возможности обновить информацию по всем модулям одной командой не будет?
ИМХО - было бы желательно добавить такую возможность. Тогда можно было бы привязать вызов sfs_event не к mount, а например к fixmenus.
Это решило бы несколько не очень важных, но актуальных проблем.