Igor Karpov wrote: > Ну тогда попробую еще предложить pl.dir > из http://lua-users.org/wiki/FileSystemOperations
по сути это тоже отдельный кусок. даже два. один - на C: https://github.com/downloads/keplerproject/luafilesystem/luafilesystem-1.5.0.tar.gz второй - уже на lua: http://luaforge.net/frs/download.php/4463/pl.0.8b.zip после сборки и установки lfs и установки pl уже можно использовать функции из pl.dir но для получения возможности легче отключать отдельные наборы правил в rspamd это уже скорее всего слишком. проще заказать Всеволоду еще одну функцию :) просто изначально отключать отдельные правила было хлопотно. нужно было найти в файлах в /usr/local/etc/rspamd/lua/regexp нужные правила, закомментировать их, потом найти в /usr/local/etc/rspamd.xml, также закомментировать их, потом уже перегружать rspamd. после же доработок стало возможным описывать отдельные наборы (по сути просто группы) правил в отдельных файлах, которые просто могут быть подключены с помощью dofile(). для подключения пользовательских файлов с наборами правил в /usr/local/etc/rspamd/lua/rspamd.lua было добавлено опциональное включение файла /usr/local/etc/rspamd/lua/rspamd.local.lua: if file_exists('rspamd.local.lua') then dofile('rspamd.local.lua') end сделано для того, чтобы не нужно было после каждого апгрейда rspamd заново руками в rspamd.lua прописывать использование своих файлов правил. так вот свои правила уже можно включать в этот rspamd.local.lua. либо непосредственно описывать их в этом файле, либо с помощью dofile() инклудить отдельные файлы с отдельными наборами. но т. к. закомментировать один dofile() в rspamd.local.lua на много проще, чем комментировать правила в файле с ними и потом еще комментировать описания этих правил в rspamd.xml, то похоже, что актуальность проблемы получения средствами lua списка файлов по маске уже достаточно низка. кстати, в lua нет штатной функции проверки существования файла. поэтому для использования в вышеописанном фрагменте была описана крошечная функция (в том же rspamd.lua): local function file_exists(filename) local file = io.open(filename) if file then io.close(file) return true else return false end end вот так вот, как оказалось, придется еще велосипеды изобретать :) > Если снова не то, перестаю умничать :) да можно и поумничать :) > 2011/2/28 Vsevolod Stakhov <vsevo...@freebsd.org > <mailto:vsevo...@freebsd.org>> > > On 02/28/2011 10:09 PM, Igor Karpov wrote: > > Прежде всего, спасибо за столь интересный и объемный пост. :) > > > я не нашел, как в lua получить список файлов по маске. > можно было бы реализовать подключение правил из всех файлов из > определенного каталога. > > Я ни разу не программист на lua, но вот что дает беглый поиск: > > *To grab the filenames of all *.txt files in a given > directory, this > seems to be the most effective way:* > *allfiles=murgaLua.readDirectory("/home/mik")* > *for i=1,table.maxn(allfiles) do* > *if string.find(allfiles[i],"%.txt$") then print(allfiles[i]) > end* > *end* > * > * > *Apparently table.getn(table) has the same result as > table.maxn(table)* > *I dunno if one is actually better than the other.* > * > * > *http://www.murga-projects.com/forum/showthread.php?tid=43* > > Подойдет? :) > > > Ну, это вызов некой C функции объекта. Из си, разумеется, все > сделать очень просто. Если будет потребность, добавлю :) > > -- > Vsevolod Stakhov > > > _______________________________________________ > Exim-users mailing list > Exim-users@mailground.net <mailto:Exim-users@mailground.net> > http://mailground.net/mailman/listinfo/exim-users > > > > > _______________________________________________ > Exim-users mailing list > Exim-users@mailground.net > http://mailground.net/mailman/listinfo/exim-users -- Best wishes Victor Ustugov mailto:vic...@corvax.kiev.ua public GnuPG/PGP key: http://victor.corvax.kiev.ua/corvax.asc ICQ UIN: 77186900, 371808614 nic-handle: CRV-UANIC _______________________________________________ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users