defmodule GelotvBot.MixProject do
use Mix.Project
def project do
[
app: :gelotv_bot,
version: "0.1.0",
elixir: "~> 1.20",
name: "GeloTVBot",
description:
"A supervised multi-platform chat bot dispatch library for Twitch, YouTube, and Kick style adapters.",
source_url: source_url(),
homepage_url: source_url(),
docs: docs(),
package: package(),
start_permanent: Mix.env() == :prod,
deps: deps()
]
end
def cli do
[
preferred_envs: [
docs: :docs
]
]
end
# Run "mix help compile.app" to learn about applications.
def application do
[
extra_applications: [:crypto, :inets, :logger, :ssl],
mod: {GelotvBot.Application, []}
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
{:ex_doc, "~> 0.40.3", only: [:dev, :docs], runtime: false}
]
end
defp package do
[
files: [
"lib",
".formatter.exs",
"mix.exs",
"README.md",
"LICENSE",
"NOTICE",
"CHANGELOG.md"
],
licenses: ["Apache-2.0"],
links: %{
"GitHub" => source_url(),
"Changelog" => source_url() <> "/blob/main/CHANGELOG.md",
"Notice" => source_url() <> "/blob/main/NOTICE"
},
maintainers: ["GeloTV"]
]
end
defp docs do
[
main: "GelotvBot",
source_ref: "v#{version()}",
source_url: source_url(),
extras: ["README.md", "CHANGELOG.md", "LICENSE", "NOTICE"],
groups_for_modules: [
Core: [
GelotvBot,
GelotvBot.Bot,
GelotvBot.Command,
GelotvBot.Message,
GelotvBot.Target,
GelotvBot.LiveDiscovery
],
Dispatch: [
GelotvBot.API,
GelotvBot.Dispatcher,
GelotvBot.RateLimiter,
GelotvBot.RetryPolicy,
GelotvBot.MessageValidator,
GelotvBot.Pagination,
GelotvBot.OAuth
],
"Platform APIs": [
GelotvBot.APIs.Twitch,
GelotvBot.APIs.YouTube,
GelotvBot.APIs.Kick
],
Metadata: [
GelotvBot.Metadata
],
Adapters: [
GelotvBot.Adapter,
GelotvBot.Adapters.Twitch,
GelotvBot.Adapters.YouTube,
GelotvBot.Adapters.Kick,
GelotvBot.Adapters.Test,
GelotvBot.HTTPClient,
GelotvBot.HTTPClient.Default
]
]
]
end
defp source_url, do: "https://github.com/gelotv/gelotv_bot"
defp version, do: "0.1.0"
end