From 8d0a2232f3b4cbf9987b890af962b19b8f85fe9d Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Sun, 20 Sep 2015 12:32:37 -0500
Subject: [PATCH] Allow editing code output by the loopy command line tool

---
 bin/loopy | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/bin/loopy b/bin/loopy
index b47127740..0ac8ee78a 100644
--- a/bin/loopy
+++ b/bin/loopy
@@ -57,6 +57,7 @@ def main():
     parser.add_argument("--target")
     parser.add_argument("--name")
     parser.add_argument("--transform")
+    parser.add_argument("--edit-code", action="store_true")
     parser.add_argument("--occa-defines")
     parser.add_argument("--occa-add-dummy-arg", action="store_true")
     parser.add_argument("--print-ir", action="store_true")
@@ -191,11 +192,20 @@ def main():
     else:
         outfile = "-"
 
+    code = "\n\n".join(codes)
+
+    import os
+    edit_kernel_env = os.environ.get("LOOPY_EDIT_KERNEL")
+    if (args.edit_code
+            or any(edit_kernel_env.lower() in k.name.lower() for k in kernels)):
+        from pytools import invoke_editor
+        code = invoke_editor(code, filename="edit.cl")
+
     if outfile == "-":
-        sys.stdout.write("\n\n".join(codes))
+        sys.stdout.write(code)
     else:
         with open(outfile, "w") as outfile_fd:
-            outfile_fd.write("\n\n".join(codes))
+            outfile_fd.write(code)
 
 
 if __name__ == "__main__":
-- 
GitLab