Browse Source

espinfo: информация по файлам плагинов TES

master
Maxim Lihachev 11 years ago
parent
commit
a691535b06
  1. 47
      espinfo

47
espinfo

@ -0,0 +1,47 @@ @@ -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]]
}
Loading…
Cancel
Save