Cherry pick updated OpenSSH from the 'msys' branch
[msysgit.git] / bin / upload-to-github.sh
blob60fc14121fec2a3030c65c17663d755699ff8bd4
1 #!/bin/sh
3 die () {
4 echo "$*" >&2
5 exit 1
8 test $# -ge 2 ||
9 die "Usage: $0 <tag-name> <path>..."
11 tagname="$1"
12 shift
14 url=https://api.github.com/repos/msysgit/msysgit/releases
15 id="$(curl --netrc -s $url |
16 grep -B1 "\"tag_name\": \"$tagname\"" |
17 sed -n 's/.*"id": *\([0-9]*\).*/\1/p')"
18 test -n "$id" || {
19 out="$(curl --netrc -s -XPOST -d '{"tag_name":"'"$tagname"'"}' $url)" ||
20 die "Error creating release: $out"
21 id="$(echo "$out" |
22 sed -n 's/.*"id": *\([0-9]*\).*/\1/p')"
23 test -n "$id" ||
24 die "Could not create release for tag $tagname"
27 url=https://uploads.${url#https://api.}
29 for path
31 case "$path" in
32 *.exe)
33 contenttype=application/executable
35 *.7z)
36 contenttype=application/zip
39 die "Unknown file type: $path"
41 esac
42 basename="$(basename "$path")"
43 curl -i --netrc -XPOST -H "Content-Type: $contenttype" \
44 --data-binary @"$path" "$url/$id/assets?name=$basename"
45 done