about summary refs log tree commit diff
path: root/pkgs/tools/typesetting/tex/texlive/patch-scripts.sed
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/typesetting/tex/texlive/patch-scripts.sed')
-rw-r--r--pkgs/tools/typesetting/tex/texlive/patch-scripts.sed57
1 files changed, 57 insertions, 0 deletions
diff --git a/pkgs/tools/typesetting/tex/texlive/patch-scripts.sed b/pkgs/tools/typesetting/tex/texlive/patch-scripts.sed
new file mode 100644
index 0000000000000..c08d765ebd717
--- /dev/null
+++ b/pkgs/tools/typesetting/tex/texlive/patch-scripts.sed
@@ -0,0 +1,57 @@
+1{
+  /python/{
+    N;
+    # add script folder to path, unless we interfere with a docstring
+    /\nr"""/b skip-python-path-patch
+    s!\n!\nimport sys; sys.path.insert(0,'@scriptsFolder@')\n!
+    :skip-python-path-patch
+  }
+
+  /^#!.*perl/{
+    # add script folder to @INC
+    s!$! -I@scriptsFolder@!
+  }
+
+  /^eval/{
+    # most likely the weird perl shebang
+    N
+    /^eval '(exit \$?0)' && eval 'exec perl -S \$0 \${1+"\$@"}' && eval 'exec perl -S \$0 \$argv:q'\n *if 0;$/{
+      x; s/.*/patching weird perl shebang/; w /dev/stderr
+      x; s|^.*$|#!@interpPerl@ -I@scriptsFolder@|
+    }
+  }
+}
+
+# patch 'exec interpreter'
+/exec java /{
+  x; s/.*/patching exec java/; w /dev/stderr
+  x; s|exec java |exec '@interpJava@' |g
+  /exec ''/{
+    x; s/^.*$/error: java missing from PATH/; w /dev/stderr
+    q 1
+  }
+}
+
+/exec perl /{
+  x; s/.*/patching exec perl/; w /dev/stderr
+  x; s|exec perl |exec @interpPerl@ -I@scriptsFolder@ |g
+  /exec ''/{
+    x; s/^.*$/error: perl missing from PATH/; w /dev/stderr
+    q 1
+  }
+}
+
+/exec wish /{
+  x; s/.*/patching exec wish/; w /dev/stderr
+  x; s|exec wish |exec '@interpWish@' |g
+  /exec ''/{
+    x; s/^.*$/error: wish missing from PATH/; w /dev/stderr
+    q 1
+  }
+}
+
+# make jar wrappers work without kpsewhich
+s!^jarpath=`kpsewhich --progname=[^ ]* --format=texmfscripts \([^ ]*\)`$!jarpath=@scriptsFolder@/\1!g
+
+# replace CYGWIN grep test with bash builtin
+s!echo "$kernel" | grep CYGWIN >/dev/null;![[ "$kernel" == *CYGWIN* ]]!g