discourse/bin/ember-cli
Robin Ward f165f98cf7
DEV: Run yarn install when running bin/ember-cli (#13102)
Some people have noticed that if we change the packages in package.json
that they have to manually run `yarn install` or Discourse won't work.

This adds `yarn install` to the `bin/ember-cli` helper we run. It seems
quite fast if there is nothing to install so it shouldn't hurt to do
this every time we start the server.
2021-05-20 14:30:22 -04:00

48 lines
1.0 KiB
Ruby
Executable File

#!/usr/bin/env ruby
# frozen_string_literal: true
require 'pathname'
RAILS_ROOT = File.expand_path("../../", Pathname.new(__FILE__).realpath)
PORT = ENV["UNICORN_PORT"] ||= "3000"
yarn_dir = File.join(RAILS_ROOT, "app/assets/javascripts/discourse")
PROXY =
if ARGV.include?("--try")
"https://try.discourse.org"
else
"http://localhost:#{PORT}"
end
command =
if ARGV.include?("--test")
"test"
else
"server"
end
class String
def cyan
"\e[36m#{self}\e[0m"
end
end
if ARGV.include?("-h") || ARGV.include?("--help")
puts "ember-cli OPTIONS"
puts "#{"--try".cyan} To proxy try.discourse.org", ""
puts "#{"--test".cyan} To run the test suite", ""
puts "The rest of the arguments are passed to ember server per:", ""
exec "yarn --cwd #{yarn_dir} run ember #{command} --help"
end
args = ["--cwd", yarn_dir, "run", "ember", command] + ARGV.reject { |a| a == "--try" || a == "--test" }
if !args.include?("--proxy")
args << "--proxy"
args << PROXY
end
system "yarn install --cwd #{yarn_dir}"
exec "yarn", *args.to_a.flatten