aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEkaterina Vaartis <vaartis@cock.li>2019-04-18 15:46:07 +0300
committerEkaterina Vaartis <vaartis@cock.li>2019-04-20 11:17:17 +0300
commit06db3ee1a8a443316196e6d8f55f4d5fc0cac694 (patch)
treeab9aad4bc51cc759aec5dc0094bce363bca41bf5
parentaf5494f942636bc6d2baa2638502974ed8cb7846 (diff)
downloadpleroma-06db3ee1a8a443316196e6d8f55f4d5fc0cac694.tar.gz
Add MD5 verification for emoji pack source
-rw-r--r--lib/mix/tasks/pleroma/emoji.ex10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/mix/tasks/pleroma/emoji.ex b/lib/mix/tasks/pleroma/emoji.ex
index 526b09b11..29c5d0c93 100644
--- a/lib/mix/tasks/pleroma/emoji.ex
+++ b/lib/mix/tasks/pleroma/emoji.ex
@@ -77,6 +77,16 @@ defmodule Mix.Tasks.Pleroma.Emoji do
)
binary_archive = Tesla.get!(src_url).body
+ archive_md5 = :crypto.hash(:md5, binary_archive) |> Base.encode16()
+
+ md5_status_text = ["MD5 of ", :bright, pack_name, :normal, " source file is ", :bright]
+ if archive_md5 == String.upcase(pack["src_md5"]) do
+ IO.puts(IO.ANSI.format(md5_status_text ++ [:green, "OK"]))
+ else
+ IO.puts(IO.ANSI.format(md5_status_text ++ [:red, "BAD"]))
+
+ raise "Bad MD5 for #{pack_name}"
+ end
# The url specified in files should be in the same directory
files_url = Path.join(Path.dirname(manifest_url), pack["files"])