summaryrefslogtreecommitdiff
path: root/mix.exs
diff options
context:
space:
mode:
authorfeld <feld@feld.me>2021-01-20 22:51:56 +0000
committerfeld <feld@feld.me>2021-01-20 22:51:56 +0000
commitb5899fda1a38c2ce2d26ebd5082d864c84105622 (patch)
tree0f9b7320edcc704a10de8162b247d2048b2b12ec /mix.exs
parent2926713fe5c36b8fc64bcce13ca16bc12eaff96c (diff)
parent3e0d1588a45d1e0d6b23ad2d39050098bc445269 (diff)
Merge branch 'copyright-fun' into 'develop'
Mix aliases for handling copyright headers See merge request pleroma/pleroma!3257
Diffstat (limited to 'mix.exs')
-rw-r--r--mix.exs30
1 files changed, 29 insertions, 1 deletions
diff --git a/mix.exs b/mix.exs
index caa86d395..489bb5729 100644
--- a/mix.exs
+++ b/mix.exs
@@ -229,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
@@ -332,4 +334,30 @@ defmodule Pleroma.Mixfile do
|> Enum.filter(fn string -> string && string != "" end)
|> Enum.join()
end
+
+ defp add_copyright(_) do
+ year = NaiveDateTime.utc_now().year
+ template = ~s[\
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-#{year} Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+] |> String.replace("\n", "\\n")
+
+ find = "find lib test priv -type f \\( -name '*.ex' -or -name '*.exs' \\) -exec "
+ grep = "grep -L '# Copyright © [0-9\-]* Pleroma' {} \\;"
+ 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 © [0-9\-]* Pleroma.*$;# Copyright © 2017-#{year} Pleroma Authors <https://pleroma.social/>;'"
+
+ :os.cmd(String.to_charlist("#{find} | #{xargs}"))
+ end
end