MultiArc

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Помимо cygwin есть и другие врапперы...
Baltazar
Сообщения: 67
Зарегистрирован: Чт окт 01, 2015 17:02

Сообщение Baltazar »

MVV писал(а):Хотя бы консольный tar-архиватор подбери, аддон состряпать поможем.
Хм, мне казалось что tar под win нормально работает с gz, но проверив, получил разномастный ворох ошибок при различных конфигурациях при попытке получить список файлов. Рабочей оказалась связка zcat и tar из комплекта UnxUtils (понимает нормальные виндовые пути до файлов и не имеет зависимостей).

Код: Выделить всё

zcat.exe busybox.tar.gz|tar -tvf -
zcat и tar + тестовый архив - https://www.upload.ee/files/7102115/tar_zcat.zip.html

Распаковка тоже работает, только ключ "t" на "x" надо сменить ;) Причём симлинки распаковались как полноценные файлы. Ключ "v" не обязателен (использовал для визуализации распаковки).

upd: С кириллицей полный швах :( Как в utf-8, так и в cp1251
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Хрень какая-то, а не вывод... С таким аддона не получится.

Код: Выделить всё

-rwsr-sr-x root/root    683040 2017-03-31 21:16 [
-rwsr-sr-x root/root         0 2017-03-31 21:16 [[ link to [
-rwsr-sr-x root/root         0 2017-03-31 21:16 adjtimex link to [
-rwsr-sr-x root/root         0 2017-03-31 21:16 ar link to [
-rwsr-sr-x root/root         0 2017-03-31 21:16 arp link to [
Здесь невозможно отделить имена ссылок... Где гарантия, что имя файла "[[", а не "[[ link to ["?

А против кодировки 1251 в мультиарке есть ключики...
Baltazar
Сообщения: 67
Зарегистрирован: Чт окт 01, 2015 17:02

Сообщение Baltazar »

MVV, Дык я же писал - можно полностью и не обрабатывать симлинки. Пока не найдётся альтернатива, достаточно обозначить их как файлы нулевого размера, как это делает 7-zip.

Ключевые моменты - работа в один заход, поддержка кириллицы и отображение симлинков (распаковка последних не критична).
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Уже говорилось, что тотал не позволяет показывать симлинки в архивах как ссылки (нет такого атрибута). Т.е. они будут показываться как-либо (нулевой размер - на мой взгляд не самый удачный способ), но не как ссылки.

Далее, чтобы это всё работало через мультиарк, нужна консольная утилита, которая будет отображать содержимое архива так, как нужно, чтобы можно было прочитать вывод. Упомянутая выше не подходит, т.к. непонятно, как определить конец имени файла.

А для тестирования отображения кириллицы в тестовый архив нужно добавить файлы с русскими именами.
Baltazar
Сообщения: 67
Зарегистрирован: Чт окт 01, 2015 17:02

Сообщение Baltazar »

Упомянутая выше не подходит, т.к. непонятно, как определить конец имени файла.
Та каша выдаётся при листинге симлинков (там в конце должно быть не "[" а "busybox"), обычные файлы в выхлопе отображаются нормально.

Код: Выделить всё

zcat.exe gzip.tar.gz|tar -tvf -
-rwsrwsrwx 0/0          000000 0000-00-00 00:00 tar.exe
-rwsrwsrwx 0/0           00000 0000-00-00 00:00 zcat.exe
В ранее выложенном архиве "нормальный" файл только один, тот самый busybox, остальное - симлинки. Определять, на что они ссылаются смысла нет, достаточно показать, что они есть (файлы нулевого размера). То что будет от даты файла + " " и до " link to [" и будет именами файлов

При желании архив tar.gz можно создать под win - сначала заархивировать в tar через 7zip, а потом им же этот архив в gz.

Вот два архива с файлами с кириллицей, созданных под win и nix в utf8 и cp1251 -> utf8 (не знаю насколько нужно последнее, но решил заодно закинуть).

https://www.upload.ee/files/7107170/rus ... ar.gz.html
https://www.upload.ee/files/7107172/rus ... ar.gz.html
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

То что будет от даты файла + " " и до " link to [" и будет именами файлов
Повторю, это ненадёжный способ определения конца имени файла, т.к. файл может иметь такое окончание. Кроме того, мультиарк не позволяет определять конец файла по тексту, можно задать либо фиксированную длину, либо ++ в случае имени файла до конца строки.

Вот два архива с файлами с кириллицей, созданных под win и nix в utf8 и cp1251 -> utf8 (не знаю насколько нужно последнее, но решил заодно закинуть).
Если в предыдущий и виндовый ещё получается зайти простым аддоном, то в никсовом сплошной бред - там все имена имеют префикс ./... Ещё и 1251 какая-то неправильная (в листере видно).
Но похоже, что утилита всегда выводит в UTF-8, поэтому не видно русского даже в виндовом. Это хорошо видно, если направить вывод в файл.

Пример аддона:

Код: Выделить всё

[targz]
Description="tar+gz"
ID=1F 8B 08
IDPos=0
Extension=.gz
Archiver="tar.exe"
List="X:\Path\tar_gz_list.bat %AQA %O"
Format0="                     +z+ yyyy-tt-dd hh:mm +n++"
UnixPath=1
Содержимое батника tar_gz_list.bat:

Код: Выделить всё

@"%~dp0\zcat.exe" %1 | "%~dp0\tar.exe" -tvf -
Ассоциировать надо с расширением gz.

Но, конечно, большие архивы открываются реально долго (даже на busybox.tar.gz заметно)... из-за того, что весь gz надо снимать, чтобы прочитать tar. Странная у линуксоидов мания к таким неудобным оберткам...
Аватара пользователя
Lisabon
Сообщения: 147
Зарегистрирован: Чт фев 17, 2011 23:11

Сообщение Lisabon »

MVV
В WinRAR v5.50 появилась поддержка архивов LZ
5. Добавлена поддержка распаковки архивов .LZ, созданных упаковщиком Lzip.
Если не затруднит, то подскажи конфиг для поддержки LZ через WinRAR.
Тестовый фал для проверки: https://www.upload.ee/files/7357998/tzd ... ar.lz.html
Аватара пользователя
Mellomann
Сообщения: 709
Зарегистрирован: Пн сен 07, 2009 00:44

Сообщение Mellomann »

Lisabon
Как вариант:

Код: Выделить всё

[RAR-5.x]
ID=52 61 72 21 
IDPos=<SeekID>
SkipSfxHeader=1 
Extension=rar5, lz
Description=RAR 5.x
Archiver=%COMMANDER_PATH%\Plugins\arc\Rar%PROCESSOR_ARCHITECTURE%.exe
BatchUnpack=1
Debug=0
Start="----------- ---------  -------- -----  ----"
End="----------- ---------  -------- -----  ----"
Format0="    aaaaaaa +z+  dd-tt-yy hh:mm  n++"
List=%PQA l -- %AQA
Extract= %PQA e -y -scO {%S} -- %AQA @%LQ 
ExtractWithPath=%PQA x -y -scO {%S} -- %AQA @%LQ
Test=%PQA t -y -scO {%S} -- %AQA
Delete=%PQA d -r -y -scO {%S} -- %AQA @%LQ
Add=%PQA a -y -ma -md128m -ed -oi:1048576 -s -t -scO {%S} %AQA @%LQ
Move=%PQA m -y -ma -md128m -ed -oi:1048576 -s -t -scO {%S} %AQA @%LQ
SkipLIST=1
;
И не забыть указать

Код: Выделить всё

lz=196,%COMMANDER_PATH%\Plugins\wcx\MultiArc\Multiarc.wcx64
в wincmd.ini

Но, насколько я знаю, консольный RAR.exe умеет только RAR, а другие форматы умеет WinRAR.exe, который с гуём, который, в свою очередь, к Multiarc не подключить по очевидной причине.
Аватара пользователя
imig73
Сообщения: 285
Зарегистрирован: Вт июн 18, 2013 13:21
Откуда: г. Иркутск

Сообщение imig73 »

К сожалению да, консольный rar.exe ничего не смог сделать с lz.
addhaloka
Сообщения: 169
Зарегистрирован: Вт ноя 09, 2010 16:09

Сообщение addhaloka »

imig73 писал(а):К сожалению да, консольный rar.exe ничего не смог сделать с lz.
Он даже с zip не работает, только с rar...
Может, кому пригодится - я себе для lz, а также для LZ4 (хотел ещё lz5, но не нашёл такого архива для настройки/теста) и zst (про плагин для него знаю, но т. к. паковать ничего не собираюсь, то не нужен) приспособил это: https://github.com/mcmilk/7-Zip-zstd/releases
p.s. Если что, с Total7Zip (и скорей всего, с другими плагинами 7-Zip) - не работает. Кодеки оттуда работают с Total7Zip, но позволяют распаковывать только 7z архивы с извр. методами сжатия, но не сами lz, zst и т. п. + если используется Total7Zip, то tc7z.dll лучше не использовать - она, наоборот будет вредить.
Аватара пользователя
Lisabon
Сообщения: 147
Зарегистрирован: Чт фев 17, 2011 23:11

Сообщение Lisabon »

MVV
Обнаружил проблему с редактированием архивов InstallShield в MultiArc 1.4.2.158.
Захожу через Data1.hdr или Data1.cab для удаления папок. Выделяю несколько папок и жму Delete, но могут не удалится папки, а могут удалится, но не все, а только одна папка. Происходит это весьма рандомно. Взял старую версию MultiArc от сюда и попробовал снова удалить папки. Папки удаляются.

P.S. Total Commander v9.0a 32-bit, Windows 8.1 64-bit.
Моя конфигурация MultiArc: https://www.upload.ee/files/7553560/MultiArc.rar.html
Редактируемый архив: https://www.upload.ee/files/7553561/Cre ... 2.rar.html

Можно ли поправить данную проблему?
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

И до кучи добавь архив с используемым InstallShield и конфигом мультиарка, пожалуйста. :)
Аватара пользователя
Lisabon
Сообщения: 147
Зарегистрирован: Чт фев 17, 2011 23:11

Сообщение Lisabon »

MVV
Всё уже добавлено.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Пардон, не заметил сразу.

Понял, в чём беда, это из-за фикса safe %F/%L expansion, я упустил вариант, когда команда вызывается отдельно для каждого файла. Спасибо, поправлю.

Добавлено спустя 37 минут:

Попробуй эту версию:

MultiArc 1.4.3.160 Beta

Исправил баг, заодно, глядя на твой конфиг, добавил псевдо-переменную $MULTIARC для поля Archiver конфига, чтобы можно было указывать путь относительно папки Мультиарка:

Код: Выделить всё

Archiver="%$MULTIARC%\Modules\FreeArc\Arc.exe"
Ответить