]> git.phdru.name Git - dotfiles.git/commitdiff
python/init.py: add new builtins: cat, sh, pager, editor
authorOleg Broytman <phd@phdru.name>
Wed, 4 Feb 2015 18:36:00 +0000 (21:36 +0300)
committerOleg Broytman <phd@phdru.name>
Wed, 4 Feb 2015 18:36:00 +0000 (21:36 +0300)
lib/python/init.py

index d835c1c9a39b78edc9946c54dc31f688a3fb4b4b..23e950b92cd495c079d3c909e00cfd1c8890a094 100644 (file)
@@ -183,5 +183,51 @@ def init():
         __builtin__.exit = __builtin__.quit = x
 
 
+    class _Cat:
+        def __repr__(self):
+            return "Usage: cat('filename')"
+
+        def __call__(self, filename):
+            fp = open(filename, 'rU')
+            text = fp.read()
+            fp.close()
+            print text
+
+    __builtin__.cat = _Cat()
+
+
+    class _Sh:
+        def __repr__(self):
+            os.system(os.environ["SHELL"])
+            return ''
+
+        def __call__(self, cmdline):
+            os.system(cmdline)
+
+    __builtin__.sh = _Sh()
+
+
+    class _Pager:
+        def __repr__(self):
+            return "Usage: pager('filename')"
+
+        def __call__(self, filename):
+            pager = os.environ["PAGER"] or 'more'
+            os.system("%s '%s'" % (pager, filename.replace("'", '"\'"')))
+
+    __builtin__.pager = _Pager()
+
+
+    class _Editor:
+        def __repr__(self):
+            return "Usage: edit('filename')"
+
+        def __call__(self, filename):
+            editor = os.environ["VISUAL"] or os.environ["EDITOR"] or 'vi'
+            os.system("%s '%s'" % (editor, filename.replace("'", '"\'"')))
+
+    __builtin__.edit = __builtin__.editor = _Editor()
+
+
 init()
 del init