lib/opal/cli_runners/nashorn.rb
# frozen_string_literal: true
require 'opal/paths'
require 'opal/cli_runners/system_runner'
module Opal
module CliRunners
class Nashorn
def self.call(data)
# Allow to change path if using GraalVM, see:
# https://github.com/graalvm/graaljs/blob/master/docs/user/NashornMigrationGuide.md#launcher-name-js
exe = ENV['NASHORN_PATH'] || 'jjs'
SystemRunner.call(data) do |tempfile|
[exe, tempfile.path, *data[:argv]]
end
rescue Errno::ENOENT
raise MissingNashorn, 'Please install JDK or GraalVM to be able to run Opal scripts.'
end
class MissingNashorn < RunnerError
end
end
end
end