From a691535b06245d1418654562be55ce32e8dfd61b Mon Sep 17 00:00:00 2001 From: Maxim Lihachev Date: Tue, 29 Apr 2014 08:53:06 +0600 Subject: [PATCH] =?UTF-8?q?espinfo:=20=D0=B8=D0=BD=D1=84=D0=BE=D1=80=D0=BC?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BF=D0=BE=20=D1=84=D0=B0=D0=B9?= =?UTF-8?q?=D0=BB=D0=B0=D0=BC=20=D0=BF=D0=BB=D0=B0=D0=B3=D0=B8=D0=BD=D0=BE?= =?UTF-8?q?=D0=B2=20TES?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- espinfo | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100755 espinfo diff --git a/espinfo b/espinfo new file mode 100755 index 0000000..51d8d77 --- /dev/null +++ b/espinfo @@ -0,0 +1,47 @@ +#!/usr/bin/env tclsh + +#Создан: Пн 28 апр 2014 21:31:36 +#Изменён: Вт 29 апр 2014 08:45:11 + +#Информация о файлах плагинов игры TES III Morrowind +proc pluginInfo {pname} { + #Открытие файла + set plugin [open $pname r] + #Чтение заголовка + read $plugin 32 + + #Автор + set author [regsub -all {\x00} [encoding convertfrom cp1251 [read $plugin 32]] {}] + #Описание + set desc [regsub -all {\x00} [encoding convertfrom cp1251 [read $plugin 250]] {}] + #Требования + #Начало секции + read $plugin 12 + #Удаление сигнатур, пустых строк, "хвоста" секции + regsub -all {DAT.*?MAST} [encoding convertfrom cp1251 \ + [read $plugin 180]] "\n" requ + regsub -all "\n+" $requ "\n" requ + regsub -all {DAT.*|ST|\x00|[^\w\.\n ]} $requ {} requ + + #Отображение зависимостей + set depends "" + foreach key [split $requ "\n"] { + append depends "\n+ $key" + } + + file stat $pname crtime + + format "\[%s\]\n\n%s\n\n%s\n%s\n" [file tail $pname] $author [fmt $desc] $depends +} + +#Форматирование длинных строк +proc fmt {string} { + regsub -all -- {.{35,45} } $string "\&\n" +} + +if {$argv == ""} { + puts stderr "USAGE: [file tail $argv0] file.esp" +} else { + puts [pluginInfo [lindex $::argv 0]] +} +