lib/mix/tasks/gh/docs.ex
defmodule Mix.Tasks.Gh.Docs do
@moduledoc """
Task that pushes docs to gh-pages branch on Discord.
"""
use Mix.Task
@remote_push_url "https://github.com/Kraigie/nostrum"
defp run!(command) do
if Mix.shell().cmd(command) != 0 do
raise Mix.Error, message: "command `#{command}` failed"
end
:ok
end
# Taken from https://gist.github.com/jjh42/5737777 with some modifications
@shortdoc "Mix task to publish gh-pages site."
def run(_) do
File.rm_rf("doc")
Mix.Task.run("docs")
File.cd!("doc")
run!("git init .")
run!("git add .")
run!("git commit -a -m \"Generated docs\"")
run!("git remote add origin #{@remote_push_url}")
run!("git push origin master:gh-pages --force")
end
end