summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--examples/plugin_ipc.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/examples/plugin_ipc.py b/examples/plugin_ipc.py
new file mode 100644
index 00000000..a9e79205
--- /dev/null
+++ b/examples/plugin_ipc.py
@@ -0,0 +1,45 @@
+# Tested with ranger 1.7.0 through ranger 1.7.*
+#
+# This plugin creates a FIFO in /tmp/ranger-ipc.<PID> to which any
+# other program may write. Lines written to this file are evaluated by
+# ranger as the ranger :commands.
+#
+# Example:
+#   $ echo tab_new ~/images > /tmp/ranger-ipc.1234
+
+import ranger.api
+
+old_hook_init = ranger.api.hook_init
+def hook_init(fm):
+    try:
+        # Create a FIFO.
+        import os
+        IPC_FIFO = "/tmp/ranger-ipc." + str(os.getpid())
+        os.mkfifo(IPC_FIFO)
+
+        # Start the reader thread.
+        try:
+            import thread
+        except ImportError:
+            import _thread as thread
+        def ipc_reader(filepath):
+            while True:
+                with open(filepath, 'r') as fifo:
+                    line = fifo.read()
+                    fm.execute_console(line.strip())
+        thread.start_new_thread(ipc_reader, (IPC_FIFO,))
+
+        # Remove the FIFO on ranger exit.
+        def ipc_cleanup(filepath):
+            try:
+                os.unlink(filepath)
+            except IOError:
+                pass
+        import atexit
+        atexit.register(ipc_cleanup, IPC_FIFO)
+    except IOError:
+        # IPC support disabled
+        pass
+    finally:
+        old_hook_init(fm)
+ranger.api.hook_init = hook_init
bmor/getwtxt/commit/svc/query_test.go?h=v0.4.15&id=2fd6b1aaa6b8382fabf1361259188f4ef36472d3'>2fd6b1a ^
5bfffe1 ^








































1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120