pre.hn/lib/lain/cli.ex
2025-01-20 16:48:32 -06:00

46 lines
1.1 KiB
Elixir

defmodule Lain.CLI do
@certpath Path.join([
Mix.Project.build_path(),
"lib",
"castore",
"priv",
"cacerts.pem"
])
@external_resource @certpath
@cacerts File.read!(@certpath)
def main([command, path]) do
Application.put_env(
:tree_sitter,
:cacerts_path,
Path.join([File.cwd!(), "_build", "castore.pem"])
)
Application.put_env(
:tailwind,
:cacerts_path,
Path.join([File.cwd!(), "_build", "castore.pem"])
)
Application.ensure_all_started([:castore, :inets, :ssl, :tailwind])
args = [
"--config=#{Path.join(Path.expand(path), "tailwind.config.js")}",
"--input=#{Path.join(Path.expand(path), "assets/app.css")}",
"--output=#{Path.join(Path.expand(path), "build/assets/app.css")}",
"--minify"
]
File.write!(Path.join("_build", "castore.pem"), @cacerts)
Tailwind.install_and_run(:default, args)
case command do
"build" ->
Lain.run(path)
"clean" ->
Lain.clean(path)
end
end
end