From 6fc8e8ec192051938da4d31459698d55b1e40ea2 Mon Sep 17 00:00:00 2001
From: Catalin Mititiuc
Date: Thu, 5 Dec 2024 14:00:23 -0800
Subject: Get path data from config vars
---
lib/mix/tasks/pandoc.ex | 34 ++++++++++++++++++++++++++++------
1 file changed, 28 insertions(+), 6 deletions(-)
(limited to 'lib/mix/tasks')
diff --git a/lib/mix/tasks/pandoc.ex b/lib/mix/tasks/pandoc.ex
index fe93208..4da8bf1 100644
--- a/lib/mix/tasks/pandoc.ex
+++ b/lib/mix/tasks/pandoc.ex
@@ -1,16 +1,38 @@
defmodule Mix.Tasks.Pandoc do
use Mix.Task
- @out_dir "priv/static"
-
@impl true
- def run([profile | _args]) do
- IO.puts "profile: #{profile}"
+ def run(args) do
+ switches = [runtime_config: :boolean]
+ {opts, remaining_args} = OptionParser.parse_head!(args, switches: switches)
+
+ if opts[:runtime_config] do
+ Mix.Task.run("app.config")
+ else
+ Mix.Task.run("loadpaths")
+ Application.ensure_all_started(:pandoc)
+ end
+
+ Mix.Task.reenable("pandoc")
+ install_and_run(remaining_args)
+ end
- "priv/posts"
+ defp install_and_run([profile | args] = _all) do
+ IO.puts("mix task args #{inspect(args)}")
+
+ "documents"
|> File.ls!()
|> Enum.each(fn path ->
- Pandoc.install_and_run(Path.join(["priv", "posts", path]))
+ all = [profile, path]
+
+ case Pandoc.run(String.to_atom(profile), [path]) do
+ 0 -> :ok
+ status -> Mix.raise("`mix pandoc #{Enum.join(all, " ")}` exited with #{status}")
+ end
end)
end
+
+ defp install_and_run([]) do
+ Mix.raise("`mix pandoc` expects the profile as argument")
+ end
end
--
cgit v1.2.3