2015-03-15 20:08:54 +03:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
die () {
|
|
|
|
echo "$*" >&2
|
|
|
|
exit 1
|
|
|
|
}
|
|
|
|
|
|
|
|
test $# -ge 2 ||
|
2015-04-06 22:57:04 +03:00
|
|
|
die "Usage: $0 [--repo=<repo>] <tag-name> <path>..."
|
|
|
|
|
2015-05-12 17:30:08 +03:00
|
|
|
repo=git-for-windows/build-extra
|
2015-04-06 22:57:04 +03:00
|
|
|
case "$1" in
|
|
|
|
--repo=*)
|
|
|
|
repo=${1#--repo=}
|
2015-05-12 17:30:08 +03:00
|
|
|
test "a${repo}" != "a${repo#*/}" ||
|
|
|
|
repo=git-for-windows/$repo
|
2015-04-06 22:57:04 +03:00
|
|
|
shift
|
|
|
|
;;
|
|
|
|
esac
|
2015-03-15 20:08:54 +03:00
|
|
|
|
|
|
|
tagname="$1"
|
|
|
|
shift
|
|
|
|
|
2015-05-12 17:30:08 +03:00
|
|
|
url=https://api.github.com/repos/$repo/releases
|
2015-03-15 20:08:54 +03:00
|
|
|
id="$(curl --netrc -s $url |
|
|
|
|
grep -B1 "\"tag_name\": \"$tagname\"" |
|
|
|
|
sed -n 's/.*"id": *\([0-9]*\).*/\1/p')"
|
|
|
|
test -n "$id" || {
|
|
|
|
out="$(curl --netrc -s -XPOST -d '{"tag_name":"'"$tagname"'"}' $url)" ||
|
|
|
|
die "Error creating release: $out"
|
|
|
|
id="$(echo "$out" |
|
2015-03-29 00:46:11 +03:00
|
|
|
sed -n 's/^ "id": *\([0-9]*\).*/\1/p')"
|
2015-03-15 20:08:54 +03:00
|
|
|
test -n "$id" ||
|
|
|
|
die "Could not create release for tag $tagname"
|
|
|
|
}
|
|
|
|
|
|
|
|
url=https://uploads.${url#https://api.}
|
|
|
|
|
|
|
|
for path
|
|
|
|
do
|
|
|
|
case "$path" in
|
|
|
|
*.exe)
|
|
|
|
contenttype=application/executable
|
|
|
|
;;
|
|
|
|
*.7z)
|
|
|
|
contenttype=application/zip
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
die "Unknown file type: $path"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
basename="$(basename "$path")"
|
|
|
|
curl -i --netrc -XPOST -H "Content-Type: $contenttype" \
|
|
|
|
--data-binary @"$path" "$url/$id/assets?name=$basename"
|
|
|
|
done
|