Add a mix alias to bump copyright
[akkoma] / mix.exs
diff --git a/mix.exs b/mix.exs
index f26a5391aa48ae35ddbbbfcd8aff3b344a36be6b..281cca6433fbd3deaec616c7b2fe4c26ab3752d3 100644 (file)
--- a/mix.exs
+++ b/mix.exs
@@ -125,7 +125,6 @@ defmodule Pleroma.Mixfile do
       {:postgrex, ">= 0.15.5"},
       {:oban, "~> 2.1.0"},
       {:gettext, "~> 0.18"},
-      {:pbkdf2_elixir, "~> 1.2"},
       {:bcrypt_elixir, "~> 2.2"},
       {:trailing_format_plug, "~> 0.0.7"},
       {:fast_sanitize, "~> 0.2.0"},
@@ -230,7 +229,9 @@ defmodule Pleroma.Mixfile do
       "ecto.reset": ["ecto.drop", "ecto.setup"],
       test: ["ecto.create --quiet", "ecto.migrate", "test"],
       docs: ["pleroma.docs", "docs"],
-      analyze: ["credo --strict --only=warnings,todo,fixme,consistency,readability"]
+      analyze: ["credo --strict --only=warnings,todo,fixme,consistency,readability"],
+      copyright: &add_copyright/1,
+      "copyright.bump": &bump_copyright/1
     ]
   end
 
@@ -333,4 +334,29 @@ defmodule Pleroma.Mixfile do
     |> Enum.filter(fn string -> string && string != "" end)
     |> Enum.join()
   end
+
+  defp add_copyright(_) do
+    year = NaiveDateTime.utc_now().year
+    line1 = "# Pleroma: A lightweight social networking server\\n"
+
+    line2 = "# Copyright © 2017-#{year} Pleroma Authors <https://pleroma.social/>\\n"
+
+    line3 = "# SPDX-License-Identifier: AGPL-3.0-only\\n\\n"
+    template = line1 <> line2 <> line3
+
+    find = "find lib test priv -type f \\( -name '*.ex' -or -name '*.exs' \\) -exec "
+    grep = "grep -L '# Copyright' {} \\; |"
+    xargs = "xargs -n1 sed -i '' '1s;^;#{template};'"
+
+    :os.cmd(String.to_charlist("#{find}#{grep}#{xargs}"))
+  end
+
+  defp bump_copyright(_) do
+    year = NaiveDateTime.utc_now().year
+    find = "find lib test priv -type f \\( -name '*.ex' -or -name '*.exs' \\) |"
+
+    xargs = "xargs sed -i '' 's/# Copyright © 2017-20[0-9][0-9]/# Copyright © 2017-#{year}/'"
+
+    :os.cmd(String.to_charlist("#{find}#{xargs}"))
+  end
 end