aboutsummaryrefslogtreecommitdiff
path: root/bin/release-ftp.sh
blob: 046b872ce8f897872cd78afdc1fc855fa16667b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#! /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 "$@"