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

Голосование

Нужно?

Нужно
10 (71.4%)
Не нужно
4 (28.6%)

Проголосовало пользователей: 14

Автор Тема: mod-up. Обновление загруженных модулей.pfs из репозитория  (Прочитано 67556 раз)

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

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Устарелость лучше проверять в качалке списка. Качалку вызывать из mod-up sfs-get
Т.е. вызываем качалку - проверяет старость и выход или качает
Давайте тогда переделаем в такой вид mod-up - по итогу полезу в sfs-get
В гуе mod-up не помешает инфа о размере модуля
« Последнее редактирование: 19 Февраль 2016, 10:14:21 от sfs »

Оффлайн ander

  • Активный участник
  • Старожил
  • ****
  • Сообщений: 300
  • Репутация: +16/-0
Выделил из mod-up скрипт getrepolist
При запуске проверяет наличие и свежесть repolist.txt  в директории $tmpdir,
которая по умолчанию /tmp/mod_update, но если сделать export tmpdir в вызывающем скрипте, то может быть и другой.
Если repolist.txt не устарел или успешно обновлен, возвращается 0, если нужно обновлять, но это не удалось сделать, возврат ненулевой.
Чтобы не выводился прогресс, нужно в вызывающем скрипте сделать export background="yes"
Закачка сначала идет в repolist.txt.new, а если такой файл уже есть и не старше двух минут, значит, какой-то другой getrepolist его уже закачивает.  В таком случае скрипт просто ждет, пока другой процесс не закончит и не переименует repolist.txt.new в repolist.txt

mod-up теперь так и работает, вызывая getrepolist
Выложил все на https://github.com/andreyrogojin/newmod/network
Gui потом переделаю, пробовал добавлять вместе с датой - не понравилось, широко очень, надо действительно попробовать добавить только размер.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Т.к. названия стандартизировали - дата сейчас не особо актуальна

Оффлайн ander

  • Активный участник
  • Старожил
  • ****
  • Сообщений: 300
  • Репутация: +16/-0
Добавил в список выбора колонку с размером файла.  Размер показывается не всегда, поскольку выдается только на mirror.yandex.
Окно списка немного расширил, чтобы все помещалось.  На гитхаб выложил.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Хочу научить mod-up и sfs-get  юзать один repolist.txt
Вроде научил. Тестировал мало. Удобнее и быстрее
« Последнее редактирование: 24 Февраль 2016, 11:57:21 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
getrepolist , запущенный не в background="yes" , пропускает
Код
www.puppyrus.org/~melvik/puppyrus/ftp/puppyrus/puppyrus-a64/pra64-06/pfs
www.puppyrus.org/~melvik/puppyrus/ftp/puppyrus/users/pra64/pfs
Если запустить в background - все ок

В gui не помешали бы кнопки:
Обновить список модулей (принудительно)
Удалить старые модули (.pfs.old)

Доработал интерфейс sfs-get : подключенные модули выводятся в порядке слоев и отдельно от пути
Будет работать только с rootcopy.pfs выше
По хорошему бы в gtkdialog list (окно с модулями) несколько колонок сделать - но не нашел как
« Последнее редактирование: 23 Февраль 2016, 11:29:10 от sfs »

Оффлайн ander

  • Активный участник
  • Старожил
  • ****
  • Сообщений: 300
  • Репутация: +16/-0
getrepolist , запущенный не в background="yes" , пропускает
Код
www.puppyrus.org/~melvik/puppyrus/ftp/puppyrus/puppyrus-a64/pra64-06/pfs
www.puppyrus.org/~melvik/puppyrus/ftp/puppyrus/users/pra64/pfs
Если запустить в background - все ок
Поправил, вроде бы работает.  Хотя так и не понял, почему именно так получалось.

В gui не помешали бы кнопки:
Обновить список модулей (принудительно)
Удалить старые модули (.pfs.old)
"Удалить pfs.old" приспособить несложно, сомнение только насчет необходимости.  Этак поудаляешь сразу все, а потом понадобится для какого-нибудь одного модуля откатиться.  Может, все же лучше вручную их удалять, более осознанно?
А вот "Обновить список модулей" даже непонятно, куда можно приткнуть, окно со списком обновлений ведь открывается только если   
обновления уже найдены - тогда список репозитория обновлять бессмысленно.  А до этого никаких окон с кнопками вообще нет...
Разве только какой-нибудь ключ -f в командную строку добавить, чтобы с ним repolist.txt считался устаревшим уже через пять минут?

Оффлайн Pro

  • Активный участник
  • Ветеран
  • ****
  • Сообщений: 10737
  • Репутация: +113/-2
не усложняйте пожалуйста, нормально же работает.
Если не сложно то вначале скрипта сделайте коментарии (легкозаметный кусок кода) как сменить адрес репозитария, т.к. хочу в локальной сети сделать зеркало.
Я загружаю новые пакеты сюда: http://file.puppyrus.org/users/ а дальше можно найти самостоятельно.

Оффлайн ander

  • Активный участник
  • Старожил
  • ****
  • Сообщений: 300
  • Репутация: +16/-0
Так оно же из /etc/sfs-get/www.list список берет, туда и впишите.
Если нужный файл оказывается в нескольких репозиториях, то качается из первого по порядку, так что локальный в этом файле лучше в начало вписать.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
"Удалить pfs.old" приспособить несложно, сомнение только насчет необходимости.
ок
Разве только какой-нибудь ключ -f в командную строку добавить, чтобы с ним repolist.txt считался устаревшим уже через пять минут?
Да. Если что - в sfs-get такую кнопку сделаю

Оффлайн ander

  • Активный участник
  • Старожил
  • ****
  • Сообщений: 300
  • Репутация: +16/-0
Сделал в getrepolist изменяемое время устаревания repolist.txt
   
Добавлены ключи командной строки.  Работает так:

Чтобы getrepolist отработал в фоне, либо export background="yes" в вызывающем скрипте, либо запускать getrepolist -b
По умолчанию, repolist.txt считается устаревшим через 18000 секунд (5 часов), чтобы изменить, либо export etime={время} в вызывающем скрипте,
либо в командной строке ключ -e [время]
Время указывается в секундах.
-e без параметра и -f эквивалентны -e 0

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Отлично! getrepolist --help выдает инфу по ключам?

Оффлайн ander

  • Активный участник
  • Старожил
  • ****
  • Сообщений: 300
  • Репутация: +16/-0
Сделал.  Теперь выдает.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Все вместе одним модулем (положить в base вместе с текущим 089*.pfs)
« Последнее редактирование: 24 Февраль 2016, 12:01:29 от sfs »

Оффлайн sfs

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