diff options
author | feld <feld@feld.me> | 2021-01-20 22:51:56 +0000 |
---|---|---|
committer | feld <feld@feld.me> | 2021-01-20 22:51:56 +0000 |
commit | b5899fda1a38c2ce2d26ebd5082d864c84105622 (patch) | |
tree | 0f9b7320edcc704a10de8162b247d2048b2b12ec /mix.exs | |
parent | 2926713fe5c36b8fc64bcce13ca16bc12eaff96c (diff) | |
parent | 3e0d1588a45d1e0d6b23ad2d39050098bc445269 (diff) | |
download | pleroma-b5899fda1a38c2ce2d26ebd5082d864c84105622.tar.gz |
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.exs | 30 |
1 files changed, 29 insertions, 1 deletions
@@ -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 |