Add mix alias to easily add copyright headers to files

This commit is contained in:
Mark Felder 2021-01-15 16:53:55 -06:00
parent cf367fdbd5
commit 3607dfefca

19
mix.exs
View file

@ -229,7 +229,8 @@ 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
]
end
@ -332,4 +333,20 @@ defmodule Pleroma.Mixfile do
|> Enum.filter(fn string -> string && string != "" end)
|> Enum.join()
end
defp add_copyright(_) do
line1 = "# Pleroma: A lightweight social networking server\\n"
line2 =
"# Copyright © 2017-#{NaiveDateTime.utc_now().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
end