From 3607dfefcae4a941c05f9e350354226d1c5fa920 Mon Sep 17 00:00:00 2001 From: Mark Felder Date: Fri, 15 Jan 2021 16:53:55 -0600 Subject: [PATCH] Add mix alias to easily add copyright headers to files --- mix.exs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/mix.exs b/mix.exs index 14448f12f..166cbdca5 100644 --- a/mix.exs +++ b/mix.exs @@ -229,7 +229,8 @@ defp aliases 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 @@ defp version(version) 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 \\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