summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorWojciech Siewierski <wojciech.siewierski@onet.pl>2015-10-09 11:02:34 +0200
committerWojciech Siewierski <wojciech.siewierski@onet.pl>2015-10-09 11:02:34 +0200
commit6e8f001cd21558fcadc5e15cbb0b1155b0dab9c0 (patch)
treec32f071113c052d8c5cd0ce8f2a0309d8574faae
parentf8341333ad3ab127dd9bf215769d77ab828efb0e (diff)
downloadranger-6e8f001cd21558fcadc5e15cbb0b1155b0dab9c0.tar.gz
Add plugin_pmount.py
Implemented as a Python plugin instead of a bunch of rc.conf lines to
allow easy nested looping.
-rw-r--r--examples/plugin_pmount.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/examples/plugin_pmount.py b/examples/plugin_pmount.py
new file mode 100644
index 00000000..61ee0dbd
--- /dev/null
+++ b/examples/plugin_pmount.py
@@ -0,0 +1,30 @@
+# Tested with ranger 1.7.2
+#
+# This plugin creates a bunch of keybindings used to mount and unmount
+# the devices using pmount(1).
+#
+# alt+m       <letter>            <digit>: mount /dev/sd<letter><digit>
+# alt+m       <uppercase letter>         : mount /dev/sd<letter>
+# alt+shift+m <letter>            <digit>: unmount /dev/sd<letter><digit>
+# alt+shift+m <uppercase letter>         : unmount /dev/sd<letter>
+# alt+shift+n                            : list the devices
+
+import ranger.api
+
+MOUNT_KEY = '<alt>m'
+UMOUNT_KEY = '<alt>M'
+LIST_MOUNTS_KEY = '<alt>N'
+
+old_hook_init = ranger.api.hook_init
+def hook_init(fm):
+    try:
+        fm.execute_console("map {key} shell -p lsblk".format(key=LIST_MOUNTS_KEY))
+        for disk in "abcdefgh":
+            fm.execute_console("map {key}{0} chain shell pmount sd{1}; cd /media/sd{1}".format(disk.upper(), disk, key=MOUNT_KEY))
+            fm.execute_console("map {key}{0} chain cd; chain shell pumount sd{1}".format(disk.upper(), disk, key=UMOUNT_KEY))
+            for part in "123456789":
+                fm.execute_console("map {key}{0}{1} chain shell pmount sd{0}{1}; cd /media/sd{0}{1}".format(disk, part, key=MOUNT_KEY))
+                fm.execute_console("map {key}{0}{1} chain cd; shell pumount sd{0}{1}".format(disk, part, key=UMOUNT_KEY))
+    finally:
+        return old_hook_init(fm)
+ranger.api.hook_init = hook_init