Преамбула
Так называемые tarball-архивы - обычное средство распространения данных в юниксах. Обычно они рассматриваются как единая сущность -- tar-архив файлов, упакованный gzip или bzip2. К сожалению ФАР не имеет встроенных средств для показа их (такие архивы) как единую сущность и показывет как два отдельных архива gzip/bzip2 с единственным вложенным tar-архивом. Данный макрос -- попытка "погрузиться" в tarball на максимально возможную глубину до файловой структуры архива, минуя промежуточную стадию входа в gzip/bzip2-архив, затем в tar...
И так...
Амбула
Скрипт пока не выкладываю в готовые решения -- возможны улучшения, дополнения, исправления
Shell.DeepTarball.lua: макрос для входа в tarball-архивы
-
- Posts: 131
- Joined: Sat 28 Jun, 2014 23:07
- Has thanked: 2 times
- Been thanked: 9 times
Shell.DeepTarball.lua: макрос для входа в tarball-архивы
Last edited by siberia-man on Thu 08 Mar, 2018 10:06, edited 5 times in total.
-
- Posts: 131
- Joined: Sat 28 Jun, 2014 23:07
- Has thanked: 2 times
- Been thanked: 9 times
Shell.DeepTarball.lua: макрос для входа в tarball-архивы
Обновления:
-- косметические исправления сообщения выше
-- разделил код на список расширений и функции определения типа архива
-- расширил макрос на xz-архивы
-- регистронезависимое сравнение (предложение коллеги Shmuel)
Исправления, дополнения, пожелания - приветствуются.
-- косметические исправления сообщения выше
-- разделил код на список расширений и функции определения типа архива
-- расширил макрос на xz-архивы
-- регистронезависимое сравнение (предложение коллеги Shmuel)
Исправления, дополнения, пожелания - приветствуются.
Last edited by siberia-man on Thu 08 Mar, 2018 10:02, edited 1 time in total.
-
- Posts: 6840
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 530 times
Shell.DeepTarball.lua: макрос для входа в tarball-архивы
У вас все расширения файлов указаны в нижнем регистре, а функция match - регистрозависимая. Поэтому можно сделать так:
Code: Select all
local function is_file(f, ext)
f = f:lower() -- добавленная строка
for i = 1, #ext do
if f:match("("..ext[i]..")$") then return true end
end
return false
end
-
- Posts: 131
- Joined: Sat 28 Jun, 2014 23:07
- Has thanked: 2 times
- Been thanked: 9 times
Shell.DeepTarball.lua: макрос для входа в tarball-архивы
Shmuel, спасибо. Учтено.
Update
Поправил первый пост.
Update
Поправил первый пост.
Last edited by siberia-man on Thu 08 Mar, 2018 09:58, edited 1 time in total.
- John Doe
- Бюрократ
- Posts: 13867
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 74 times
- Been thanked: 428 times
- Contact:
Shell.DeepTarball.lua: макрос для входа в tarball-архивы
Похожий скрипт: viewtopic.php?p=166934#p166934
https://t.me/FarManager — Telegram чат