2024-01-14 02:50:37 +01:00
|
|
|
namespace :nanoc do
|
2024-02-10 00:27:50 +01:00
|
|
|
require "bundler/setup"
|
2024-04-22 01:08:29 +02:00
|
|
|
workdir = File.realpath File.join(__dir__, "..", "..", "client")
|
2024-02-08 04:11:27 +01:00
|
|
|
|
|
|
|
desc "Clean the build/ directory"
|
|
|
|
task :clean do
|
2024-03-31 01:11:33 +01:00
|
|
|
Dir.chdir(workdir) do
|
2024-02-16 00:35:04 +01:00
|
|
|
sh "rm -rf node_modules/.cache/"
|
2024-02-08 04:11:27 +01:00
|
|
|
sh "rm -rf build"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2024-03-31 01:11:33 +01:00
|
|
|
desc "Configure build environment"
|
|
|
|
task :env do
|
|
|
|
ENV['SASS_PATH'] = File.join(workdir, 'src', 'css', 'vendor', 'tail.css', 'src')
|
|
|
|
end
|
|
|
|
|
2024-01-14 02:50:37 +01:00
|
|
|
desc "Produce the build/ directory"
|
2024-03-31 01:11:33 +01:00
|
|
|
task :build, [:buildenv] => %w[nanoc:env] do |t, args|
|
|
|
|
Dir.chdir(workdir) do
|
2024-02-16 01:03:39 +01:00
|
|
|
buildenv = args.buildenv || ENV["buildenv"] || "development"
|
2024-03-31 01:11:33 +01:00
|
|
|
sasspath = ENV["SASS_PATH"]
|
2024-02-08 04:11:27 +01:00
|
|
|
sh "rm -rf build/css/"
|
2024-02-16 01:21:57 +01:00
|
|
|
Bundler.with_unbundled_env {
|
2024-03-31 01:11:33 +01:00
|
|
|
sh "SASS_PATH=#{sasspath} buildenv=#{buildenv} bundle exec nanoc co"
|
2024-02-16 01:21:57 +01:00
|
|
|
}
|
2024-02-08 04:11:27 +01:00
|
|
|
end
|
2024-01-14 02:50:37 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
desc "Produce the build/ directory on-demand"
|
2024-03-31 01:11:33 +01:00
|
|
|
task watch: %w[nanoc:build] do
|
|
|
|
Dir.chdir(workdir) do
|
2024-02-10 00:27:50 +01:00
|
|
|
require "listen"
|
|
|
|
path = File.join(Dir.getwd, "src")
|
|
|
|
Listen.to(path) do
|
|
|
|
Bundler.with_unbundled_env { sh "rake nanoc:build" }
|
|
|
|
end.start
|
|
|
|
sleep
|
|
|
|
end
|
2024-01-14 02:50:37 +01:00
|
|
|
rescue Interrupt
|
|
|
|
warn "SIGINT: exit"
|
|
|
|
exit
|
|
|
|
end
|
|
|
|
end
|