al-quran.reflectslight.io/Rakefile.rb
2023-07-04 23:17:18 -03:00

56 lines
1 KiB
Ruby

# frozen_string_literal: true
require "bundler/setup"
require "ryo"
require "yaml"
build_dir = Ryo.from(YAML.load_file("./nanoc.yaml")).output_dir
namespace :nanoc do
desc "Compile the website"
task :compile do
ENV["SASS_PATH"] = "./src/css/"
sh "bundle exec nanoc co"
end
desc "Delete the build directory"
task :clean do
sh "rm -rf #{build_dir}"
end
end
desc "Build the website"
task build: "nanoc:compile"
desc "Clean the build directory"
task clean: "nanoc:clean"
desc "Serve the website on localhost"
task :server do
require "server"
s = Server.for_dir(build_dir)
s.start(block: true)
rescue Interrupt
s.stop
end
namespace :lint do
desc "Run rubocop (Ruby)"
task :rubocop do
sh "bundle exec rubocop"
end
desc "Run eslint (TypeScript)"
task :eslint do
sh "npm run eslint"
end
namespace :eslint do
desc "Run eslint with the --fix option (TypeScript)"
task :fix do
sh "npm run eslint-autofix"
end
end
end
task lint: ["lint:rubocop", "lint:eslint"]
task default: "build"