Commit 53749636c7d2dfa1c4caa11077f016b2a41b1046

Thomas de Grivel 2022-04-02T18:55:44

ksh

diff --git a/lib/dart_sass.ex b/lib/dart_sass.ex
index 848a8f5..ee6c0bf 100644
--- a/lib/dart_sass.ex
+++ b/lib/dart_sass.ex
@@ -137,7 +137,7 @@ defmodule DartSass do
   # TODO: Remove when dart-sass will exit when stdin is closed.
   @doc false
   def script_path() do
-    Path.join(:code.priv_dir(:dart_sass), "dart_sass.bash")
+    Path.join(:code.priv_dir(:dart_sass), "dart_sass.ksh")
   end
 
   @doc """
diff --git a/priv/dart_sass.bash b/priv/dart_sass.bash
deleted file mode 100755
index 0f97f90..0000000
--- a/priv/dart_sass.bash
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/env bash
-
-# This script was taken from the Elixir Port guide. It is used to ensure
-# graceful termination of the `sass` process when it detects that stdin
-# has been closed.
-# Link: https://hexdocs.pm/elixir/Port.html#module-zombie-operating-system-processes
-#
-# This script is required until dart-sass supports listening on stdin and
-# gracefully terminating when stdin is closed. There is currently a PR for
-# this behaviour: https://github.com/sass/dart-sass/pull/1411
-#
-# Start the program in the background
-exec "$@" &
-pid1=$!
-
-# Silence warnings from here on
-exec >/dev/null 2>&1
-
-# Read from stdin in the background and
-# kill running program when stdin closes
-exec 0<&0 $(
-  while read; do :; done
-  kill -KILL $pid1
-) &
-pid2=$!
-
-# Clean up
-wait $pid1
-ret=$?
-kill -KILL $pid2
-exit $ret
diff --git a/priv/dart_sass.ksh b/priv/dart_sass.ksh
new file mode 100755
index 0000000..471b697
--- /dev/null
+++ b/priv/dart_sass.ksh
@@ -0,0 +1,31 @@
+#!/bin/ksh
+
+# This script was taken from the Elixir Port guide. It is used to ensure
+# graceful termination of the `sass` process when it detects that stdin
+# has been closed.
+# Link: https://hexdocs.pm/elixir/Port.html#module-zombie-operating-system-processes
+#
+# This script is required until dart-sass supports listening on stdin and
+# gracefully terminating when stdin is closed. There is currently a PR for
+# this behaviour: https://github.com/sass/dart-sass/pull/1411
+#
+# Start the program in the background
+exec "$@" &
+pid1=$!
+
+# Silence warnings from here on
+exec >/dev/null 2>&1
+
+# Read from stdin in the background and
+# kill running program when stdin closes
+exec 0<&0 $(
+  while read; do :; done
+  kill -KILL $pid1
+) &
+pid2=$!
+
+# Clean up
+wait $pid1
+ret=$?
+kill -KILL $pid2
+exit $ret