Page MenuHomePhorge

No OneTemporary

Size
4 KB
Referenced Files
None
Subscribers
None
diff --git a/.gitignore b/.gitignore
index fa8a503..31b00ca 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,21 +1,22 @@
# The directory Mix will write compiled artifacts to.
/_build
# If you run "mix test --cover", coverage assets end up here.
/cover
# The directory Mix downloads your dependencies sources to.
/deps
# Where 3rd-party dependencies like ExDoc output generated docs.
/doc
# If the VM crashes, it generates a dump, let's ignore it too.
erl_crash.dump
# Also ignore archive artifacts (built via "mix archive.build").
*.ez
*.o
priv/captcha
+priv/*.dSYM
diff --git a/changelog.d/build-priv.fix b/changelog.d/build-priv.fix
new file mode 100644
index 0000000..1904802
--- /dev/null
+++ b/changelog.d/build-priv.fix
@@ -0,0 +1 @@
+Ensure the generated captcha executable is installed into the compiled application priv directory.
diff --git a/mix.exs b/mix.exs
index 1d95863..20ac7bb 100644
--- a/mix.exs
+++ b/mix.exs
@@ -1,103 +1,106 @@
defmodule Mix.Tasks.Compile.Make do
def run(_) do
{result, error_code} = System.cmd("make", [], stderr_to_stdout: true)
Mix.shell().info(result)
case error_code do
- 0 -> :ok
+ 0 -> copy_priv()
_ -> {:error, ["make failed"]}
end
end
+
+ defp copy_priv do
+ if File.regular?("priv/captcha") do
+ Mix.Project.build_structure()
+ :ok
+ else
+ {:error, ["make did not produce priv/captcha"]}
+ end
+ end
end
defmodule Mix.Tasks.Clean.Make do
def run(_) do
{result, error_code} = System.cmd("make", ["clean"], stderr_to_stdout: true)
Mix.shell().info(result)
case error_code do
0 -> :ok
_ -> {:error, ["make clean failed"]}
end
end
end
defmodule Captcha.Mixfile do
use Mix.Project
def project do
[
app: :captcha,
- version: "1.0.2",
+ version: "1.0.3",
elixir: "~> 1.3",
build_embedded: Mix.env() == :prod,
start_permanent: Mix.env() == :prod,
compilers: [:make, :elixir, :app],
description: description(),
aliases: aliases(),
package: package(),
test_coverage: [summary: [threshold: 50]],
deps: deps()
]
end
# Configuration for the OTP application
#
# Type "mix help compile.app" for more information
def application do
- applications =
- case Mix.env() do
- :dev -> [:logger, :ex_doc, :makeup, :makeup_elixir, :makeup_erlang]
- _ -> [:logger]
- end
-
- [applications: applications]
+ [applications: [:logger]]
end
# Dependencies can be Hex packages:
#
# {:mydep, "~> 0.3.0"}
#
# Or git/path repositories:
#
# {:mydep, git: "https://github.com/p-lang/mydep.git", tag: "0.1.0"}
#
# Type "mix help deps" for more examples and options
defp deps do
[{:ex_doc, ">= 0.0.0", only: :dev, runtime: false}]
end
defp aliases do
[clean: ["clean", "clean.make"]]
end
defp description do
"""
This is a Elixir lib for generating captcha. No dependencies. It drawing captcha image with C code. No ImageMagick, No RMagick.
This is the fork used by Pleroma.
"""
end
defp package do
[
name: :pleroma_captcha,
files: [
"lib",
"mix.exs",
"README*",
"LICENSE*",
"src",
"test",
"config",
"Makefile"
],
maintainers: ["pleroma"],
licenses: ["MIT"],
links: %{
"GitHub" => "https://git.pleroma.social/pleroma/elixir-libraries/elixir-captcha",
"Docs" => "https://git.pleroma.social/pleroma/elixir-libraries/elixir-captcha"
}
]
end
end
diff --git a/test/elixir_captcha_test.exs b/test/elixir_captcha_test.exs
index cd55e1b..1406bfc 100644
--- a/test/elixir_captcha_test.exs
+++ b/test/elixir_captcha_test.exs
@@ -1,15 +1,21 @@
defmodule CaptchaTest do
use ExUnit.Case
doctest Captcha
test "successfully generates an image" do
assert {:ok, _, _} = Captcha.get()
end
+ test "installs generated captcha executable in application priv directory" do
+ executable = Application.app_dir(:captcha, "priv/captcha")
+
+ assert File.regular?(executable)
+ end
+
test "does not package generated captcha executable" do
files = Mix.Project.config() |> Keyword.fetch!(:package) |> Keyword.fetch!(:files)
refute "priv" in files
refute "priv/captcha" in files
end
end

File Metadata

Mime Type
text/x-diff
Expires
Fri, Oct 9, 10:02 PM (1 d, 21 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1784486
Default Alt Text
(4 KB)

Event Timeline