Merge branch 'copyright-fun' into 'develop'
authorfeld <feld@feld.me>
Wed, 20 Jan 2021 22:51:56 +0000 (22:51 +0000)
committerfeld <feld@feld.me>
Wed, 20 Jan 2021 22:51:56 +0000 (22:51 +0000)
Mix aliases for handling copyright headers

See merge request pleroma/pleroma!3257

1  2 
mix.exs

diff --combined mix.exs
index caa86d3954f03d28fc0957570fc6fb69ca2c6dcf,26b52b0cb131e3a6e2594e85b1d1775329ec3eba..489bb5729ba04a25d6a20793a2ce87720aa999ca
+++ b/mix.exs
@@@ -123,7 -123,7 +123,7 @@@ defmodule Pleroma.Mixfile d
        {:ecto_enum, "~> 1.4"},
        {:ecto_sql, "~> 3.4.4"},
        {:postgrex, ">= 0.15.5"},
 -      {:oban, "~> 2.1.0"},
 +      {:oban, "~> 2.3.4"},
        {:gettext, "~> 0.18"},
        {:bcrypt_elixir, "~> 2.2"},
        {:trailing_format_plug, "~> 0.0.7"},
        "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
  
      |> 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