defmodule FileStream.MixProject do use Mix.Project @version "0.4.2" def project do [ app: :file_stream, version: @version, elixir: "~> 1.12", start_permanent: Mix.env() == :prod, deps: deps(), description: description(), package: package(), docs: docs(), aliases: aliases(), preferred_cli_env: preferred_cli_env(), elixirc_paths: elixirc_paths(Mix.env()) ] end # Specifies which paths to compile per environment. defp elixirc_paths(:test), do: ["lib", "test/support"] defp elixirc_paths(_), do: ["lib"] # Run "mix help compile.app" to learn about applications. def application do [ extra_applications: [:logger, :ssh] ] end defp description do """ Turns any file-like resource into a stream. """ end defp package do [ files: ["lib", "mix.exs", "README*"], maintainers: ["Movable Ink"], licenses: ["MIT"], links: %{"GitHub" => "https://github.com/coherentpath/file_stream"} ] end defp docs do [ extras: ["README.md"], main: "readme", groups_for_modules: [ # FileStream, # FileStream.Resource, Storage: [ FileStream.Storage, FileStream.Storage.GCS, FileStream.Storage.HTTP, FileStream.Storage.Local, FileStream.Storage.S3, FileStream.Storage.SFTP ] ] ] end defp aliases do [ setup: [ "local.hex --if-missing --force", "local.rebar --if-missing --force", "deps.get" ], ci: [ "setup", "compile --warnings-as-errors", "format --check-formatted", "credo --strict", "test" ] ] end defp preferred_cli_env do [ ci: :test ] end # Run "mix help deps" to learn about dependencies. defp deps do [ {:hackney, "~> 1.18"}, {:keyword_validator, "~> 2.0"}, {:sweet_xml, "~> 0.6"}, {:credo, "~> 1.5", only: [:dev, :test], runtime: false}, {:ex_doc, ">= 0.0.0", only: :dev, runtime: false} ] end end