From: Igor Vlasenko <vlasenko@imath.kiev.ua> To: devel@lists.altlinux.org Subject: [devel] I: .watch files: master class Date: Tue, 10 Jan 2012 22:07:31 +0200 Message-ID: <20120110200731.GA7465@dad.imath.kiev.ua> (raw) Господа, собирался писать для watch.altlinux.org плагин оповещения через .watch файлы, но оказалось, что увы, у нас этой возможностью не пользуются, и плагин писать пока рано и незачем, так как в наших пакетах .watch файлов, которые бы этот плагин обрабатывал, нет (мои не в счет). Поэтому хочу провести небольшой ликбез по debian watch файлам. у нас для работы с ними портировано и написано ряд утилит, надо смело пользоваться. 1) watch файлы - это просто. Напишем watch файл на примере пакета mytetra. watch файл состоит из 2-х строк: сначала идет магическая строка "version=3" далее, если бы у проекта был бы простой каталог загрузки http://webhamster.ru/db/data/articles/105 с ftp или http листингом, то вторую строчку можно было бы написать как регулярное выражение http://webhamster.ru/db/data/articles/105/mytetra_(.*)_src.zip где в скобках та часть url, которая задает версию. # -- было бы -------- version=3 http://webhamster.ru/db/data/articles/105/mytetra_(.*)_src.zip # ------------------- Однако у проекта mytetra простого каталога загрузки нет, вместо этого есть страничка проекта http://webhamster.ru/site/page/index/articles/projectcode/105 и с нее уже ведут ссылки. Поэтому в watch файл надо вписать 2 компоненты через пробел: URL странички и регулярное выражение для ссылок с нее. Если бы ссылки были относительные, надо было бы написать #-----mytetra.watch------ version=3 http://webhamster.ru/site/page/index/articles/projectcode/105 mytetra_(.*)_src.zip #---------------------- но там ссылки абсолютные, и надо писать #-----mytetra.watch------ version=3 http://webhamster.ru/site/page/index/articles/projectcode/105 http://webhamster.ru/db/data/articles/105/mytetra_(.*)_src.zip #---------------------- Такой, watch файл будет работать, но из файла mytetra_1_30_1_src.zip получится версия 1_30_1, а нам бы хотелось, чтобы было 1.30.1. Такое тоже можно, надо в начало строки указать опции uscan. Получим #-----mytetra.watch------ version=3 opts="uversionmangle=s/_/./g" http://webhamster.ru/site/page/index/articles/projectcode/105 http://webhamster.ru/db/data/articles/105/mytetra_(.*)_src.zip #--------------------- Запускаем и проверяем: $ rpm-uscan mytetra.watch ... Для любителей экзотики сюда же в конец можно добавить " debian <имя скрипта>" тогда rpm-uscan после загрузки новой версии вызовет указанный там скрипт. Пример: #-----mytetra.watch------ version=3 opts="uversionmangle=s/_/./g" http://webhamster.ru/site/page/index/articles/projectcode/105 http://webhamster.ru/db/data/articles/105/mytetra_(.*)_src.zip debian my_update_script.sh #--------------------- Особый случай -- uupdate как имя скрипта обновления. В этом случае, для " debian uupdate" будет вызвана утилита gear-uupdate. 2) Надо паковать watch файлы в rpm пакет, см. http://www.altlinux.org/Watch тогда песочница сможет их наблюдать. также, src.rpm файлы тогда можно обновлять одной командой srpmtool --uupdate /path/to/src.rpm Для gear-репозиториев, для работы cronbuild достаточно упаковать watch файл, тогда скрипты писать не нужно. Для gear-репозиториев, при наличии watch файла rpm-uscan можно запускать без аргументов, он найдет все сам. Когда что-то не понятно, спрашивайте. -- Dr. Igor Vlasenko -------------------- Topology Department Institute of Math Kiev, Ukraine
next reply other threads:[~2012-01-10 20:07 UTC|newest] Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top 2012-01-10 20:07 Igor Vlasenko [this message] 2012-01-11 5:31 ` Dubrovskiy Viacheslav 2012-01-11 8:15 ` Igor Vlasenko 2012-01-11 9:16 ` REAL 2012-01-11 8:24 ` Igor Vlasenko 2012-01-11 8:29 ` Igor Vlasenko 2012-01-11 9:30 ` REAL 2012-01-11 8:48 ` Igor Vlasenko
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20120110200731.GA7465@dad.imath.kiev.ua \ --to=vlasenko@imath.kiev.ua \ --cc=devel@lists.altlinux.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Team development discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \ devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru public-inbox-index devel Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.devel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git