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

Автор Тема: LF. Загрузка-выгрузка пользовательских модулей sfs  (Прочитано 6683 раз)

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

Оффлайн sklimkin

  • Пользователь
  • **
  • Сообщений: 78
  • Репутация: +4/-0
  • Автор темы
Скрипт load-module.sh успешно загружает и выгружает squashfs-модули. Спасибо Фреду из Голландии.

Я вспомнил свои упражнения с gtkdialog и сделал дополнение к этому скрипту.
gtkdialog не очень хорошо приспособлен для работы с циклами типа 'for ... do'
Скрипт может загружать пользовательские модули, может и выгружать их, но не совсем правильно - т.е. не из списка в 'combobox'.

Сейчас нужен список уже загруженных модулей для их деактивации.
Но я не нахожу способ для вставки имен уже загруженных модулей в 'combobox' (COMBOBOX).
Пока там только <NONE>, item 1, item 2, ..., item 12.
Вероятно строка-переменная в начале моего скрипта:
INSTALLED="... ... ..." (подсмотрел у 'sfs')
должна помочь в этом, но я не знаю, как ее задействовать.

Некоторые пояснения:
0. поскольку скрипт должен работать с разными типами модулей, я переименовал его load-module.sh --> load-modules.sh (для старого названия надо исправить его имя в скрипте 'user-modules_1')
1. главной задачей было облегчить выполнение скрипта load-modules.sh
2. работу скрипта проверил только с *.sfs (squashfs), надо проверить с *.deb
3. меню в скрипте оставил для возможной доработки:
   'About' и 'Run Programs' работают правильно,
   'Help --> man busybox' пока записывает все в 'mod-list',
   меню можно расширить, а можно и удалить
4. gtkdialog-скрипт пишет свой лог-файл в 'mod-list'
   туда попадает командная строка для load-modules.sh и значения переменных.
5. StatusBar - тоже пока примитивный - содержит неизменяемую строку-подсказку.
6. у меня скрипт load-modules.sh находится по старому в /scripts, в новой версии он находится в /usr/bin и называется load-module.sh  - надо исправить в строках 26 и 44.
Если кто-то исправит мой скрипт (правильный список в 'combobox'), я буду благодарен.
Надеюсь, это пригодится не только мне.

Изменения:
Я вспомнил, как трудно читать чужие запутанные скрипты.
Подумал и решил сделать скрипт действительно минимальным.
Его новое имя user-modules_2, размер 1.5 KB
Убрал из него почти все.
А предыдущий вариант пусть останется для возможного развития (может быть для изучения кем-то возможностей gtkdialog).

P.S. тема в развитие Linux-Frugal (LF) автора 'sfs'
Скрипт использую в debian, но возможно и в Puppy он будет работать.
« Последнее редактирование: 16 Январь 2014, 09:30:52 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 34026
  • Репутация: +231/-0
    • PuppyRus-A
Взял на себя смелость переместить из раздела программирование
Еще бы и название изменил "модулей sfs и deb" - deb - это пакеты, а не модули. Ваш скрипт как-то работает с .deb ?
Аналогичным функционалом обладает pfs-util и load_sfs (от Дяди Шурика). Чем Ваш лучше? (я не говорю что Ваш хуже, я пытаюсь понять)
В идеале сделать бы 1 устраивающий всех...
« Последнее редактирование: 16 Январь 2014, 09:02:47 от sfs »

Оффлайн sklimkin

  • Пользователь
  • **
  • Сообщений: 78
  • Репутация: +4/-0
  • Автор темы
Цитата
Чем Ваш лучше? (я не говорю что Ваш хуже, я пытаюсь понять)
Ничем, за исключением краткости - 2-й вариант (и надеюсь понятности).
Это я продолжаю диалог с ребятами на Мурге, тема "Модульный Дебиан".
Подумал, может быть и здесь можно.

Лучше подскажите, как в combobox поместить список уже загруженных модулей.
Название темы не нашел, как изменить.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 34026
  • Репутация: +231/-0
    • PuppyRus-A
Чем Ваш лучше? Ничем, за исключением краткости - 2-й вариант (и надеюсь понятности).
Основной скрипт у Вас из AOS
pfs-util - комплексное, наиболее законченное и документированное решение. Лучше бы вместе допивать его.
Лучше подскажите, как в combobox поместить список уже загруженных модулей.
Вот это - лучше в программирование.
Вдохновитесь sfs-get или http://wiki.puppyrus.org/programming/gtkdialog2 На сайте проги все с примерами
Название темы не нашел, как изменить.
Редактированием 1го поста

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8637
  • Репутация: +187/-2
  • Старый чайник
Лучше подскажите, как в combobox поместить список уже загруженных модулей.
Код
 losetup
/dev/loop0: 0 /mnt/dev_base/217/head/richy-217U-base.pfs
/dev/loop1: 0 /mnt/dev_base/217/richy_save.pfs
/dev/loop2: 0 /mnt/tmpfs/FoxitReader-1.1.0.pfs
/dev/loop3: 0 /mnt/tmpfs/opera-12.15.pfs
/dev/loop4: 0 /mnt/tmpfs/epdfview-0.1.8.pfs
/dev/loop5: 0 /mnt/tmpfs/pidgin-2.10.6.pfs
/dev/loop6: 0 /mnt/tmpfs/goffice-0.8.17.pfs
/dev/loop7: 0 /mnt/tmpfs/git-1.8.5.2-pr.pfs
/dev/loop8: 0 /mnt/tmpfs/fbreader-0.12.10.pfs
/dev/loop9: 0 /mnt/tmpfs/gnumeric-1.10.17.pfs
/dev/loop10: 0 /mnt/tmpfs/lighttpd-1.4.29.pfs
/dev/loop11: 0 /mnt/tmpfs/autorun3Gmodem.pfs
/dev/loop12: 0 /mnt/tmpfs/mtpaint-3.40.pfs
/dev/loop13: 0 /mnt/tmpfs/firefox_19_01.pfs
/dev/loop14: 0 /mnt/tmpfs/skype-static-4.0.0.7.pfs
/dev/loop15: 0 /mnt/tmpfs/cloud.pfs
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sklimkin

  • Пользователь
  • **
  • Сообщений: 78
  • Репутация: +4/-0
  • Автор темы
Цитата
Основной скрипт у Вас из AOS
Для меня важнее кто дал - а это "хэрр голландский", как сказал актер Матвеев в одном фильме.
Цитата
pfs-util - комплексное, наиболее законченное и документированное решение. Лучше бы вместе допивать его.
Все так, но я его плохо понимаю. Я геодезист, не программист.
Цитата
http://wiki.puppyrus.org/programming/gtkdialog2
Нет это не сработает - gtkdialog имеет 2, если не 3 разных типа построения собственной конструкции (см. последние строки моего скрипта).
И "пробежка" нужна не по элементам окна, а по item-ам combobox'а
В Вашей wiki о combobox ни слова - наверное потому, что он везде (и в СИ тоже) не так прост.
Да я ж  по-ихнему ни слова
Ни в дугу и ни в тую.
Молот мне - так я любого
В своего перекую!

Но инструктор - парень дока,
Деловой, попробуй срежь.
И опять пошла морока
Про коварный "зарубеж".
(В. Высоцкий, "Загранкомандировка")

Поэтому вопрос поставлю по-другому:
что делает строка из Вашего sfs-xxx скрипта:
Код
inst="`$losetup |awk -F"(" '! /.squashfs\)/ {print $2}'|awk -F")" '{print $1}'`"

Спасибо, "дядя Шурик" - Вы настоящий товарищ!

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 34026
  • Репутация: +231/-0
    • PuppyRus-A
Все так, но я  плохо понимаю pfs-util. Я геодезист, не программист.
Так спрашивайте - что не понятно. По итогу доработаем скрипт и доку
А какой смысл изобретать велосипед?
Если есть желание попрограммировать - пишите что-нибудь чего нет. Это будет не только интересно (всем) но и полезно
Если уж менять pfs - то на что-то не менее функциональное
что делает строка из Вашего sfs-xxx скрипта:
http://docs.puppyrus.org/programming/awk

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8637
  • Репутация: +187/-2
  • Старый чайник
что делает строка из Вашего sfs-xxx скрипта
Код
 losetup |awk -F"(" '! /.squashfs\)/ {print $2}'|awk -F")" '{print $1}' 
Запустил в консоли, выдало пустое место, значит ничего.
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 34026
  • Репутация: +231/-0
    • PuppyRus-A
Надо losetup -a. В пупи losetup-FULL -a
Выдаст названия подгруженных модулей, откинув модули.squashfs
Это что-то мое времен live-boot

Оффлайн DdShurick

  • Это Риччи
  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 8637
  • Репутация: +187/-2
  • Старый чайник
 Тогда понятнее наверно будет так
Код
losetup-FULL -a | tr -d [\(\)] | awk '!/.squashfs/ {print $3}' 
Моноблок Lenovo IdeaCentre c200 (Intel Atom D525, Intel GMA 3150, 2 Gb RAM) Richy64
Nettop Acer Aspire Revo R3610 (Atom N330, nVidia GeForce 9400, 3 Gb RAM) Richy64

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 34026
  • Репутация: +231/-0
    • PuppyRus-A
Возможно. Просто я awk знаю лучше tr  ;)

Оффлайн sklimkin

  • Пользователь
  • **
  • Сообщений: 78
  • Репутация: +4/-0
  • Автор темы
Спасибо, ребята! Что бы я делал без вашей критики и помощи?  ::)
Строка, которую цитировал, хорошая, но ключик действительно был пропущен.
Я попробовал ее модификации и скажу так: спасибо Александр (aka 'sfs')!

Вот немного вкусил от bash и awk и  таки заставил gtkdialog выводить список загруженных модулей в combobox.
Теперь выгрузка модулей будет "кошерной".
Заодно узнал о наличии в bash циклов until ... do ... - что особенно приятно.
Вот 3-й вариант моего скрипта:
« Последнее редактирование: 16 Январь 2014, 18:36:34 от sklimkin »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 34026
  • Репутация: +231/-0
    • PuppyRus-A
Строка, которую цитировал, хорошая, но ключик действительно был пропущен.
Он не пропущен. Там была переменная, через которую я разруливал гемор c  losetup-Full