From 2d1c387f38f845f3837167da23ca225fb7ccd43a Mon Sep 17 00:00:00 2001 From: gryf Date: Sun, 2 Oct 2022 10:27:12 +0200 Subject: [PATCH] Separate ulzx from extfslib --- README.rst | 132 ++------------- extfslib.py | 241 ---------------------------- extras/unadf_separate_comment.patch | 122 -------------- uadf | 187 --------------------- ulha | 182 --------------------- 5 files changed, 12 insertions(+), 852 deletions(-) delete mode 100644 extfslib.py delete mode 100644 extras/unadf_separate_comment.patch delete mode 100755 uadf delete mode 100755 ulha diff --git a/README.rst b/README.rst index 508f4dc..653e6bd 100644 --- a/README.rst +++ b/README.rst @@ -1,49 +1,11 @@ -======================== -Midnight Commander extfs -======================== +======================= +Midnight Commander ulzx +======================= -Those are Midnight Commander extfs plugins for handling several archive types -mostly known from AmigaOS - like **lha**, **lzx** and disk images like **adf** -and **dms**. +Midnight Commander extfs plugin for handling lzx Amiga archives. -Installation -============ - -See individual installation plugins below. Basically it comes down to: - -* copying ``extfslib.py`` and plugin files to ``~/.local/share/mc/extfs.d/`` -* installing binary handlers (lha, unlzx, xdms and unadf) -* adding an entry in ``~/.config/mc/mc.ext``:: - - # arch - regex/\.pattern$ - Open=%cd %p/handler_filename:// - -ULha -==== - -ULha is an extfs plugin which can be used with lha/lzh/lharc archives. -Personally, I've use it almost exclusively for archives created long time ago -on my Amiga. Both reading from and writing into archive was implemented. - -Requirements ------------- - -ULha requires `free lha `_ implementation to work. - -Installation ------------- - -* copy ``extfslib.py`` and ``ulha`` to ``~/.local/share/mc/extfs.d/`` -* add or change entry for files handle in ``~/.config/mc/mc.ext``:: - - # lha - regex/\.[lL]([Hh][aA]|[Zz][hH])$ - Open=%cd %p/ulha:// - View=%view{ascii} lha l %f - -ULzx -==== +Description +=========== ULzx is an extfs plugin which can be used to browse and extract lzx archives, which are known almost exclusively from Amiga. @@ -54,7 +16,7 @@ only reading is supported. Also be aware, that `unlzx `_ cannot extract files individually, so copying entire archive content is not recommended, since on every single file a full archive extract would be -performed, which in the end would have impact on performance. +done, which in the end would have impact on performance. Requirements ------------ @@ -65,7 +27,8 @@ ULzx requires Installation ------------ -* copy ``extfslib.py`` and ``ulzx`` to ``~/.local/share/mc/extfs.d/`` +* install `extfslib`_ +* copy ``ulzx`` to ``~/.local/share/mc/extfs.d/`` * add or change entry for files handle in ``~/.config/mc/mc.ext``:: # lzx @@ -73,82 +36,11 @@ Installation Open=%cd %p/ulzx:// View=%view{ascii} unlzx -v %f -UAdf -==== - -UAdf is an extfs plugin suitable for reading .adf, .adz and .dms Amiga floppy -disk images. Due to limitations of the -`unadf `_, file access inside disk image is -read only. - -In case of corrupted or no-dos images, message will be shown. - -Requirements ------------- - -It requires ``unadf`` utility from `ADFlib `_ -repository, with included `that commit -`_ -in particular, which introduced separation between filename and comment -attribute on Amiga Fast File System. - -If it turns out that your distribution doesn't provide proper version of ADFlib, -there will be a need for building it by hand. - -It may be done by using following steps: - -#. Grab the `sources - `_ - and `patches - `_ - from `Debian repository `_. -#. Extract ``unadf_0.7.11a-3.debian.tar.gz`` and ``unadf_0.7.11a.orig.tar.gz`` - into some temporary directory:: - - $ mkdir temp - $ cd temp - $ tar zxf ~/Downloads/unadf_0.7.11a-3.debian.tar.gz - $ tar zxf ~/Downloads/unadf_0.7.11a.orig.tar.gz - $ cd unadf-0.7.11a - -#. Apply Debian patches:: - - $ for i in `cat ../debian/patches/series`; do - > patch -Np1 < "../debian/patches/${i}" - > done - -#. Apply the patch from extras directory:: - - $ patch -Np1 < [path_to_this_repo]/extras/unadf_separate_comment.patch - $ make - $ cp Demo/unadf [destination_path] - -#. Place ``unadf`` binary under directory reachable by ``$PATH``. - -For optional dms support, `xdms `_ utility is -needed. - -Installation ------------- - -* copy ``extfslib.py`` and ``uadf`` to ``~/.local/share/mc/extfs.d/`` -* add or change entry for files handle in ``~/.config/mc/mc.ext``:: - - # adf - type/^Amiga\ .* disk - Open=%cd %p/uadf:// - View=%view{ascii} unadf -lr %f - - # adz - regex/\.([aA][dD][zZ])$ - Open=%cd %p/uadf:// - - # dms - regex/\.([dD][mM][sS])$ - Open=%cd %p/uadf:// - License ======= This software is licensed under 3-clause BSD license. See LICENSE file for details. + + +.. _extfslib: https://github.com/gryf/mc_extfs diff --git a/extfslib.py b/extfslib.py deleted file mode 100644 index d828cf5..0000000 --- a/extfslib.py +++ /dev/null @@ -1,241 +0,0 @@ -""" -extfslib is a library which contains Archive class to support writing extfs -plugins for Midnight Commander. - -Tested against python 3.6 and mc 4.8.22 - -Changelog: - 1.2 Switch to python3 - 1.1 Added item pattern, and common git/uid attrs - 1.0 Initial release - -Author: Roman 'gryf' Dobosz -Date: 2019-06-30 -Version: 1.2 -Licence: BSD -""" -import argparse -import os -import sys -import re -from subprocess import check_output, CalledProcessError - - -class Archive(object): - """Archive handle. Provides interface to MC's extfs subsystem""" - LINE_PAT = re.compile(b"^(?P)\s" - b"(?P)\s" - b"(?P)\s" - b"(?P)\s" - b"(?P)\s+" - b"(?P