about summary refs log blame commit diff stats
path: root/examples/plugin_avfs.py
blob: 07968a0353826bcb147164615f7c09670333b18d (plain) (tree)
1
2
3
4
5
6
7
8
9
10









                                                                  


              



                                                    















                                                                                 
# Tested with ranger 1.9.1
#
# A very simple and possibly buggy support for AVFS
# (http://avf.sourceforge.net/), that allows ranger to handle
# archives.
#
# Run `:avfs' to browse the selected archive.

from __future__ import (absolute_import, division, print_function)

import os
import os.path

from ranger.api.commands import Command


class avfs(Command):  # pylint: disable=invalid-name
    avfs_root = os.path.join(os.environ["HOME"], ".avfs")
    avfs_suffix = "#"

    def execute(self):
        if os.path.isdir(self.avfs_root):
            archive_directory = "".join([
                self.avfs_root,
                self.fm.thisfile.path,
                self.avfs_suffix,
            ])
            if os.path.isdir(archive_directory):
                self.fm.cd(archive_directory)
            else:
                self.fm.notify("This file cannot be handled by avfs.", bad=True)
        else:
            self.fm.notify("Install `avfs' and run `mountavfs' first.", bad=True)