[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Продолжение



Hello!

On Tuesday 09 February 2010 15:03:36 Serhiy Storchaka wrote:
> Alexey Pechnikov wrote:
> > Утилита find в дебиане майм-тип для *.fb2 отдает как application/xml,
> > так что или верить расширению, или пользоваться универсальным парсером для
> > xml. В обоих случаях есть свои плюсы и минусы.
> 
> The  environment  variable  MAGIC can be used to set the default magic
> number file name.
> 
> Универсальный парсер плох тем, что текст будет склеиваться и разбиваться на
> строки где не следует. И содержимое тегов binary будет очень мешать при
> полнотекстовом поиске.

Оно бы все так, да вот только контент файла, переданный на stdin,
можно обработать только одной утилитой:

MIME=""
if [ $# -eq 1 ]; then
    MIME=`file --brief --mime-type "$1"`
fi
if [ $# -eq 0 ]; then
    MIME=`file --brief --mime-type -`
fi

if [ "$MIME" = "application/xml" ];then
    FLAG=""
    if [ $# -eq 1 ]; then
        FLAG=`grep '<FictionBook xmlns:l="http://www.w3.org/1999/xlink"; xmlns="http://www.gribuser.ru/xml/fictionbook/2.0";>' "$1" |wc -l`
    fi
    if [ $FLAG -eq 1 ]; then
        echo "application/x-fictionbook+xml"
        exit 0
    fi

fi
echo "$MIME"


Или заменять dash на тикль везде, а это приведет к тому, что придется вместо вызовов отдельных утилит инклюдить файлы
с функциями (запуск интерпретатора тикля не быстрый), или в архиве нам "честный" mime-тип не распознать.

Best regards, Alexey Pechnikov.
http://pechnikov.tel/

Reply to: