]> git.openstreetmap.org Git - rails.git/blobdiff - bin/yarn
Merge remote-tracking branch 'upstream/pull/3961'
[rails.git] / bin / yarn
index 99e5e77285b1827fe23d420604d7c90eff4b44d7..72c7b5d97601a8e6695d318f0a3ab7011e423580 100755 (executable)
--- a/bin/yarn
+++ b/bin/yarn
@@ -1,9 +1,17 @@
 #!/usr/bin/env ruby
 APP_ROOT = File.expand_path("..", __dir__)
 Dir.chdir(APP_ROOT) do
-  exec "yarnpkg", *ARGV
-rescue Errno::ENOENT
-  warn "Yarn executable was not detected in the system."
-  warn "Download Yarn at https://yarnpkg.com/en/docs/install"
-  exit 1
+  yarn = ENV["PATH"].split(File::PATH_SEPARATOR)
+                    .reject { |dir| File.expand_path(dir) == __dir__ }
+                    .product(["yarnpkg", "yarn", "yarn.cmd", "yarn.ps1"])
+                    .map { |dir, file| File.expand_path(file, dir) }
+                    .find { |file| File.executable?(file) }
+
+  if yarn
+    exec yarn, "--ignore-engines", *ARGV
+  else
+    warn "Yarn executable was not detected in the system."
+    warn "Download Yarn at https://yarnpkg.com/en/docs/install"
+    exit 1
+  end
 end