defmodule ShelllessRelease.MixProject do use Mix.Project @version "0.1.0" @source_url "https://github.com/u2i/shellless_release" def project do [ app: :shellless_release, version: @version, elixir: "~> 1.15", start_permanent: Mix.env() == :prod, description: description(), package: package(), deps: deps(), docs: docs(), name: "ShelllessRelease", source_url: @source_url ] end def application do # Library only — no supervised processes. EpmdLess is loaded by the VM via # -epmd_module, not started as an app child. [extra_applications: [:logger]] end defp deps do [ {:ex_doc, "~> 0.31", only: :dev, runtime: false} ] end defp description do "Shell-free, distribution-hardened mix releases for distroless images: " <> "a native launcher (no /bin/sh), a command whitelist (no eval), pinned " <> "distribution port, mandatory mutual-TLS distribution, and EPMD-less mode." end defp package do [ licenses: ["MIT"], links: %{"GitHub" => @source_url}, # Ship the C source + TLS template as data; the consuming app's mix # release step compiles the launcher in its (C-capable) build stage. files: ~w(lib priv mix.exs README.md LICENSE) ] end defp docs do [ main: "ShelllessRelease", extras: ["README.md"] ] end end