Hello! Итак, сделал поддержку архивов (пока скрипт только для zip написал, но добавить прочие несложно), все обработчики реализованы раздельными шелл-скриптами (без башизмов!), большинство depends перемещены в recommends, а в обработчиках сделана функция самотестирования (при запуске индексатора можно проверить, кто из скриптов не может работать из-за неудовлетворенных зависимостей и далее их игнорировать).
Основной движок сделан полностью на dash, а на тикле только обертка для пакетной индексации. Перешел на тикль 8.6, т.к. в нем есть полузакрытые сокеты (бэкпорт у меня в репозитории есть, зависимостей не тянет). Где возможно, используется exec. Все скрипты весьма простые и компактные. Разделил пакет на sqlite3-poisk-core - парсеры документов, создание БД (на dash) sqlite3-poisk-dev - сейчас содержит единственную утилиту, разбирающую системный mime.types (или любой другой файл в том же формате) и создающий симлинки расширение -> обработчик (тикль 8.6) sqlite3-poisk-client - клиентские утилиты (на С) sqlite3-poisk-server - пакетный сканер (тикль 8.6) Первые два пакета выложены, в остальные пока вношу некоторые изменения. Добавлено автораспознавание кодировок plain text и конвертация их в uft-8 при сохранении в БД. В производительности теряем, но считаю это необходимым из-за зоопарка распространенных кодировок. Некоторые тесты нового варианта: 1. Отправлено на индексацию файлов find /tmp/* | wc -l 3488 2. Суммарный размер файлов $ du -sh /tmp 327M /tmp 3. Время индексации $ time find /tmp/* | POISK_DB=DB ./poisk-add-file.tcl real 1m52.476s user 0m51.507s sys 0m53.091s 4. Всего проиндексировано файлов $ sqlite3 DB "select count(*) from file" 3544 Кол-во файлов в пункте 4 превышает их число в пункте 1, т.к. были обработаны архивы, содержащие набор файлов. Примечание: имя базы теперь читается из переменной окружения POISK_DB, так во многих случаях удобнее, нежели для всех утилит указывать аргументом. ========================================== Вопрос к сообществу: кто подскажет способ преобразовать в форматированный текст форматы fb2, epub? Парсер должен брать ввод на stdin и выдавать на stdout, без временных файлов. Сейчас обрабатываю как xml, с помощью sed заменяя амперсанд (кривой xml в fb2 - вместо & в нем фигачат просто &). Кто поделится библиотекой либрусек в разных форматах? Думаю, электронные библиотеки - первый кандидат на тестирование. У меня несколько сот книжек с либрусека было скачано, пока его не прикрыли, их индексацию проверил, в zip-архиве и просто файлами. Best regards, Alexey Pechnikov. http://pechnikov.tel/