aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
authortypebrook <typebrook@gmail.com>2020-03-19 00:55:44 +0800
committertypebrook <typebrook@gmail.com>2020-03-19 00:55:44 +0800
commitab5c492ebe11aa7dba9f6cc96353b48382ee6939 (patch)
treed8218b86125223ae6cc7670eed139c9991978701 /tools
parent3b5ffa090f257a55f01e3f77ca4e8f659adb76dc (diff)
update
Diffstat (limited to 'tools')
-rwxr-xr-xtools/github-release.sh43
1 files changed, 27 insertions, 16 deletions
diff --git a/tools/github-release.sh b/tools/github-release.sh
index e7ddb3b..2936134 100755
--- a/tools/github-release.sh
+++ b/tools/github-release.sh
@@ -62,33 +62,44 @@ response=$(curl -sH "$AUTH" $GH_TAGS)
62eval $(echo "$response" | grep -m 1 "id.:" | grep -w id | tr : = | tr -cd '[[:alnum:]]=' | sed 's/id/release_id/') 62eval $(echo "$response" | grep -m 1 "id.:" | grep -w id | tr : = | tr -cd '[[:alnum:]]=' | sed 's/id/release_id/')
63[ "$release_id" ] || { echo "Error: Failed to get release id for tag: $tag"; echo "$response" | awk 'length($0)<100' >&2; exit 1; } 63[ "$release_id" ] || { echo "Error: Failed to get release id for tag: $tag"; echo "$response" | awk 'length($0)<100' >&2; exit 1; }
64 64
65post_asset() {
66 # Upload asset
67 echo "Uploading asset... " > /dev/tty
68 # Construct url
69 GH_ASSET="https://uploads.github.com/repos/$repo/releases/$release_id/assets?name=$(basename $1)"
70
71 curl --data-binary @"$filename" -H "$AUTH" -H "Content-Type: application/octet-stream" $GH_ASSET
72}
73
74delete_asset() {
75 echo "Deleting asset($1)... " > /dev/tty
76 curl -X "DELETE" -H "$AUTH" "$GH_REPO/releases/assets/$1"
77}
78
65upload_asset() { 79upload_asset() {
66 # Get ID of the asset based on given filename. 80 # Get ID of the asset based on given filename.
67 # If exists, delete it. 81 # If exists, delete it.
68 eval $(echo "$response" | grep -C2 "\"name\":.\+$(basename $filename)" | grep -m 1 "id.:" | grep -w id | tr : = | tr -cd '[[:alnum:]]=' | sed 's/id/asset_id/') 82 eval $(echo "$response" | grep -C2 "\"name\": \"$(basename $filename)\"" | grep -m 1 "id.:" | grep -w id | tr : = | tr -cd '[[:alnum:]]=' | sed 's/id/asset_id/')
69 if [ "$asset_id" = "" ]; then 83 if [ "$asset_id" = "" ]; then
70 echo "No need to overwrite asset" 84 echo "No need to overwrite asset"
85 post_asset $filename
71 else 86 else
72 if [ "$overwrite" = "true" ] || [ "$overwrite" = "delete" ]; then 87 if [ "$overwrite" = "true" ]; then
73 echo "Deleting asset($asset_id)... " 88 new_asset_id=$(post_asset ${filename}_bak | sed -E 's/^\{[^{]+"id":([0-9]+).+$/\1/')
74 curl -X "DELETE" -H "$AUTH" "$GH_REPO/releases/assets/$asset_id" 89 [ "$new_asset_id" = "" ] && exit 1 || delete_asset "$asset_id"
75 if [ "$overwrite" = "delete" ]; then 90
76 exit 0 91 echo "Renaming asset($new_asset_id) from $(basename $filename)_bak to $(basename $filename)" > /dev/tty
77 fi 92 curl -X PATCH -H "$AUTH" -H "Content-Type: application/json" \
93 --data "{\"name\":\"$(basename $filename)\"}" "$GH_REPO/releases/assets/$new_asset_id"
94 elif [ "$overwrite" = "delete" ]; then
95 delete_asset "$asset_id"
96 exit 0
78 else 97 else
79 echo "File already exists on tag $tag" 98 echo "File already exists on tag $tag"
80 echo "If you want to overwrite it, set overwrite=true" 99 echo "If you want to overwrite it, set overwrite=true"
81 exit 1 100 exit 1
82 fi 101 fi
83 fi 102 fi
84
85 # Upload asset
86 echo "Uploading asset... "
87
88 # Construct url
89 GH_ASSET="https://uploads.github.com/repos/$repo/releases/$release_id/assets?name=$(basename $filename)"
90
91 curl --data-binary @"$filename" -H "$AUTH" -H "Content-Type: application/octet-stream" $GH_ASSET
92} 103}
93 104
94edit_release() { 105edit_release() {
@@ -104,7 +115,7 @@ edit_release() {
104} 115}
105EOF 116EOF
106 ) 117 )
107 curl -v -X PATCH -H "$AUTH" -H "Content-Type: application/json" -d "$body" $GH_RELEASE 118 curl -X PATCH -H "$AUTH" -H "Content-Type: application/json" -d "$body" $GH_RELEASE
108} 119}
109 120
110case $type in 121case $type in