aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2020-03-23 09:31:33 +0100
committerPatrick Spek <p.spek@tyil.nl>2020-03-23 09:31:33 +0100
commitd0d482f93b1bdfaac93912736feb82b2ddd8e5a8 (patch)
tree4ee22ab5005d07fc13c61610992721e1b31ba7b7 /lib
parent309b7c1a9d421c71647e5fadfc686bab7f5068e5 (diff)
Make dist generate checksums and a PGP signature
Diffstat (limited to 'lib')
-rw-r--r--lib/actions/dist.bash49
1 files changed, 47 insertions, 2 deletions
diff --git a/lib/actions/dist.bash b/lib/actions/dist.bash
index 5da5e49..4b49167 100644
--- a/lib/actions/dist.bash
+++ b/lib/actions/dist.bash
@@ -2,6 +2,13 @@
RSTAR_DEPS_BIN+=(
git
+ gpg
+ md5sum
+ sha1sum
+ sha224sum
+ sha256sum
+ sha384sum
+ sha512sum
tar
)
@@ -39,8 +46,16 @@ action() {
tar czf "$tarball" "rakudo-star-$version"
- # TODO: Create checksums
- # TODO: Create PGP signature
+ chgdir "$(dirname "$tarball")"
+
+ info "Generating checksums for $tarball"
+ for sum in md5 sha{1,224,256,384,512}
+ do
+ dist_checksum "$sum" "$tarball" >> "$tarball.checksums.txt"
+ done
+
+ info "Generating a PGP signature for $tarball"
+ gpg --armor --detach-sign --output "$tarball.asc" "$tarball"
info "Distribution tarball available at $tarball"
}
@@ -49,3 +64,33 @@ dist_include() {
mkdir -p -- "$(dirname "${WORKDIR}$1")"
cp -r -- "${BASEDIR}$1" "${WORKDIR}$1"
}
+
+dist_checksum() {
+ printf "%-6s %s\n" \
+ "$1" \
+ "$("dist_checksum_$1" "$2")"
+}
+
+dist_checksum_md5() {
+ md5sum "$1" | awk '{print $1}'
+}
+
+dist_checksum_sha1() {
+ sha1sum "$1" | awk '{print $1}'
+}
+
+dist_checksum_sha224() {
+ sha224sum "$1" | awk '{print $1}'
+}
+
+dist_checksum_sha256() {
+ sha256sum "$1" | awk '{print $1}'
+}
+
+dist_checksum_sha384() {
+ sha384sum "$1" | awk '{print $1}'
+}
+
+dist_checksum_sha512() {
+ sha512sum "$1" | awk '{print $1}'
+}