Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gryf/mc_extfslib
Midnight Commander extfs for several filetypes using Python
https://github.com/gryf/mc_extfslib
adf amiga dms fs-plugin lha lzx mc midnight-commander python
Last synced: 2 months ago
JSON representation
Midnight Commander extfs for several filetypes using Python
- Host: GitHub
- URL: https://github.com/gryf/mc_extfslib
- Owner: gryf
- License: other
- Created: 2015-09-02T19:29:31.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2023-10-22T16:46:26.000Z (about 1 year ago)
- Last Synced: 2024-04-24T02:45:21.631Z (9 months ago)
- Topics: adf, amiga, dms, fs-plugin, lha, lzx, mc, midnight-commander, python
- Language: Python
- Homepage: https://bitbucket.org/gryf/mc_extfs
- Size: 33.2 KB
- Stars: 2
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
===========================
Midnight Commander extfslib
===========================.. image:: https://img.shields.io/pypi/v/extfslib.svg
:target: https://pypi.python.org/pypi/extfslibMidnight Commander extfslib helper library for writing extfs archive plugins.
Description
===========Extfslib help with building Midnight Commander extfs plugins, especially for
those which operates on different kind of archives.Simplest plugin built on top of this lib would be:
.. code:: python
import extfslib
class MyArchive(extfslib.Archive):
ARCHIVER = "fancyarch"
def list(self):
if not self._contents:
return 1for item in self._contents:
sys.stdout.buffer.write(self.ITEM % item)arch = MyArchive('/path/to/file.fancyarch')
arch.list()In this example class instance should be able to be called with ``list``
method. All methods:- ``list``
- ``copyin``
- ``copyout``
- ``rm``
- ``mkdir``
- ``rmdir``
- ``run``should be implemented if needed, since by default all of them are just defined,
but not implemented.Of course, real life example can be a little bit more complicated, since there
would be possible need for adapting ``LINE_PAT`` which is regular expression
for getting attributes for the list compatible with MC along with the ``ITEM``
which holds the output pattern and utilizes dictionary from ``LINE_PAT``,
``CMD`` which maps between class and archiver commands. Possibly there might be
needed some other adjustments.Additionally there is an optional ``Config`` class, which might be used for
reading Midnight Commander ini file (ususally located in ``~/.config/mc/ini``),
so that for the example above:.. code:: python
import extfslib
class MyArchive(extfslib.Archive):
ARCHIVER = "fancyarch"
def __init__(self):
super().__init__()
self.conf = extfslib.Config(self)
if self.conf,getint('config_key'):
# do somethingwhere the ``ini`` config file would contain:
.. code:: ini
…
[myarchive]
config_key = 300
…So, section name ``[myarchive]`` must match class name in lower case, and name
of the option is arbitrary string folowed by value. Note, the section and
options must be added manually.Installation
============Install from Pypi
.. code:: shell-session
# pip install extfslib
or, as a user:
.. code:: shell-session
$ pip install extfslib --user
or use virtualenv:
.. code:: shell-session
$ git clone https://github.com/gryf/mc_extfslib
$ cd mc_extfslib
$ virtualenv venv
$ source venv/bin/activate
(venv) $ pip installLicense
=======This software is licensed under 3-clause BSD license. See LICENSE file for
details.