aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2019-11-05 09:17:39 +0100
committerPatrick Spek <p.spek@tyil.nl>2019-11-05 09:17:39 +0100
commit4dd6d96c16adeee22e88c167f3b8deef683939e1 (patch)
tree77c019f39fc5f809709acf15a5e4a27e75a543de
parent215447a103a4f050c3c5bd544f2628890a649882 (diff)
Update scripts
-rwxr-xr-xbin/build-release.sh56
-rwxr-xr-xbin/mkchecksum.sh36
-rwxr-xr-xbin/mkrelease.sh43
-rwxr-xr-xbin/release-ftp.sh43
4 files changed, 123 insertions, 55 deletions
diff --git a/bin/build-release.sh b/bin/build-release.sh
new file mode 100755
index 0000000..0c32d14
--- /dev/null
+++ b/bin/build-release.sh
@@ -0,0 +1,56 @@
+#! /usr/bin/env sh
+
+readonly BASEDIR=$(CDPATH="" cd -- "$(dirname -- "$0")/.." && pwd -P)
+
+main()
+{
+ # Handle opts
+ opts "$@"
+ shift "$OPTS"
+ unset OPTS
+
+ # Show help
+ [ "$OPT_HELP_ONLY" ] && usage && exit 0
+ [ -z "$1" ] && usage && exit 1
+
+ # Build Rakudo Star from the release tarball
+ mkdir -p -- "$BASEDIR/work/build"
+ cd -- "$BASEDIR/work/build"
+ tar xzf "$BASEDIR/work/release/rakudo-star-$1.tar.gz"
+ cd "rakudo-star-$1"
+ perl Configure.pl --prefix="$BASEDIR/work/install" --backend=moar --gen-moar
+}
+
+opts()
+{
+ OPTS=0
+
+ while getopts ":h" opt
+ do
+ case "$opt" in
+ h) OPT_HELP_ONLY=1 ;;
+ *)
+ printf "Invalid option passed: %s\n" "$OPTARG" >&2
+ ;;
+ esac
+ done
+}
+
+usage()
+{
+ cat <<EOF
+Usage:
+ $(basename "$0") -h
+ $(basename "$0") <version>
+
+Build Rakudo Star from a release tarball in $BASEDIR/work/release. This tarball
+can be easily made using mkrelease.sh in this repository. This will not install
+Raku in $BASEDIR/work/install, only build all the required components needed
+for testing.
+
+Options:
+ -h Show this help text and exit.
+EOF
+}
+
+main "$@"
diff --git a/bin/mkchecksum.sh b/bin/mkchecksum.sh
index 45f3416..5a7ac1f 100755
--- a/bin/mkchecksum.sh
+++ b/bin/mkchecksum.sh
@@ -2,11 +2,14 @@
main()
{
- if [ -z "$1" ]
- then
- usage
- exit 1
- fi
+ # Handle opts
+ opts "$@"
+ shift "$OPTS"
+ unset OPTS
+
+ # Show help
+ [ "$OPT_HELP_ONLY" ] && usage && exit 0
+ [ -z "$1" ] && usage && exit 1
printf "md5 %s\n" "$(md5sum "$1" | cut -f1 -d" ")"
printf "sha1 %s\n" "$(sha1sum "$1" | cut -f1 -d" ")"
@@ -16,9 +19,30 @@ main()
printf "sha512 %s\n" "$(sha512sum "$1" | cut -f1 -d" ")"
}
+opts()
+{
+ OPTS=0
+
+ while getopts ":h" opt
+ do
+ case "$opt" in
+ h) OPT_HELP_ONLY=1 ;;
+ *)
+ printf "Invalid option passed: %s\n" "$OPTARG" >&2
+ ;;
+ esac
+ done
+}
+
usage()
{
- printf "NYI\n"
+ cat <<EOF
+Usage:
+ $(basename "$0") -h
+ $(basename "$0") <file>
+
+Make a number of checksums of a given file.
+EOF
}
main "$@"
diff --git a/bin/mkrelease.sh b/bin/mkrelease.sh
index 67df86d..b5de149 100755
--- a/bin/mkrelease.sh
+++ b/bin/mkrelease.sh
@@ -4,20 +4,51 @@ readonly BASEDIR=$(CDPATH="" cd -- "$(dirname -- "$0")/.." && pwd -P)
main()
{
- if [ -z "$1" ]
- then
- usage
- exit 1
- fi
+ # Handle opts
+ opts "$@"
+ shift "$OPTS"
+ unset OPTS
+ # Show help
+ [ "$OPT_HELP_ONLY" ] && usage && exit 0
+ [ -z "$1" ] && usage && exit 1
+
+ # Make the release
cd -- "$BASEDIR"
make -f tools/star/Makefile all VERSION="$1"
make -f tools/star/Makefile release VERSION="$1"
}
+opts()
+{
+ OPTS=0
+
+ while getopts ":h" opt
+ do
+ case "$opt" in
+ h) OPT_HELP_ONLY=1 ;;
+ *)
+ printf "Invalid option passed: %s\n" "$OPTARG" >&2
+ ;;
+ esac
+ done
+}
+
usage()
{
- print "NYI\n"
+ cat <<EOF
+Usage:
+ $(basename "$0") -h
+ $(basename "$0") <version>
+
+Make a releasable tarball of Rakudo Star. You must specify a version number,
+which will be used to name the tarball. The tarball will be put in
+$BASEDIR/work/release. You will still have to manually create checksums and a
+PGP signature.
+
+Options:
+ -h Show this help text and exit.
+EOF
}
main "$@"
diff --git a/bin/release-ftp.sh b/bin/release-ftp.sh
deleted file mode 100755
index 046b872..0000000
--- a/bin/release-ftp.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#! /usr/bin/env sh
-
-readonly BASEDIR=$(CDPATH="" cd -- "$(dirname -- "$0")/.." && pwd -P)
-readonly DISTNAME="rakudo-star-$CI_COMMIT_REF_NAME"
-
-main()
-{
- if list_releases | grep -Fq "$DISTNAME"
- then
- printf "A release named %s already exists!\n" "$DISTNAME"
- exit 1
- fi
-
- upload_release
-}
-
-list_releases()
-{
- lftp -e <<-EOI
- open $FTP_HOST:${FTP_PORT:-21};
- user sftp://$FTP_USER $FTP_PASSWORD;
- cd ${FTP_DIR:-rakudo-star};
- ls;
- bye;
- EOI
-}
-
-upload_release()
-{
- checksums=$(mktemp)
- $BASEDIR/bin/mkchecksum.sh "work/release/$DISTNAME" > "$checksums"
-
- lftp -e <<-EOI
- open $FTP_HOST:${FTP_PORT:-21};
- user sftp://$FTP_USER $FTP_PASSWORD;
- cd ${FTP_DIR:-rakudo-star};
- put work/release/$DISTNAME;
- put $checksums -o $DISTNAME.checksums.txt;
- bye;
- EOI
-}
-
-main "$@"