diff options
| author | typebrook <typebrook@gmail.com> | 2020-02-02 15:49:48 +0800 |
|---|---|---|
| committer | typebrook <typebrook@gmail.com> | 2020-02-02 15:49:48 +0800 |
| commit | 08b3d8510b23fb289cf216d1f8ea5f98b2062f97 (patch) | |
| tree | fe77670e238fdca87f06003d34fc08c64a21e4d5 | |
| parent | 70a71dfaa07b4d80816617b15d2e684b8fd04201 (diff) | |
update
| -rwxr-xr-x | scripts/gist | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/scripts/gist b/scripts/gist index c1b8a8c..088fc13 100755 --- a/scripts/gist +++ b/scripts/gist | |||
| @@ -134,7 +134,7 @@ _validate_config(){ | |||
| 134 | 134 | ||
| 135 | # load configuration | 135 | # load configuration |
| 136 | _apply_config() { | 136 | _apply_config() { |
| 137 | _validate_config | 137 | _validate_config "$@" || return 1 |
| 138 | 138 | ||
| 139 | AUTH_HEADER="Authorization: token $token" | 139 | AUTH_HEADER="Authorization: token $token" |
| 140 | [[ -z "$action" ]] && action="${EDITOR:-vi} *" | 140 | [[ -z "$action" ]] && action="${EDITOR:-vi} *" |
| @@ -162,12 +162,17 @@ getConfiguredClient() { | |||
| 162 | 162 | ||
| 163 | ## Allows to call the users configured client without if statements everywhere | 163 | ## Allows to call the users configured client without if statements everywhere |
| 164 | http_method() { | 164 | http_method() { |
| 165 | local header="" | ||
| 166 | local METHOD=$1; shift | 165 | local METHOD=$1; shift |
| 166 | [[ $METHOD =~ (POST|PATCH) ]] && read data | ||
| 167 | case "$configuredClient" in | 167 | case "$configuredClient" in |
| 168 | curl) [[ -n $token ]] && header="--header Authorization: token $token"; curl $METHOD -A curl -s $header $@ ;; | 168 | curl) [[ -n $token ]] && local extra="--header" local header="Authorization: token $token" |
| 169 | wget) [[ -n $token ]] && header="--header Authorization: token $token"; wget --method=$METHOD -qO- $header $@ ;; | 169 | [[ $METHOD =~ (POST|PATCH) ]] && extra2="--data" |
| 170 | httpie) [[ -n $token ]] && header="Authorization:token $token"; http -b $METHOD $@ $header;; | 170 | curl -X $METHOD -A curl -s $extra "$header" $extra2 "$data" $@ ;; |
| 171 | wget) [[ -n $token ]] && local extra="--header" local header="Authorization: token $token" | ||
| 172 | [[ $METHOD =~ (POST|PATCH) ]] && extra2='--body-data' | ||
| 173 | wget --method=$METHOD -qO- $extra "$header" $extra2 "$data" $@ ;; | ||
| 174 | httpie) [[ -n $token ]] && header="Authorization:token $token" | ||
| 175 | http -b $METHOD $@ "$header";; | ||
| 171 | fetch) fetch -q "$@" ;; | 176 | fetch) fetch -q "$@" ;; |
| 172 | esac | 177 | esac |
| 173 | } | 178 | } |
| @@ -251,6 +256,8 @@ _update() { | |||
| 251 | fi | 256 | fi |
| 252 | 257 | ||
| 253 | local response=$(http_method GET $GITHUB_API/$route) | 258 | local response=$(http_method GET $GITHUB_API/$route) |
| 259 | |||
| 260 | # FIXME if response fail | ||
| 254 | false && echo Failed to update gists && return 1 | 261 | false && echo Failed to update gists && return 1 |
| 255 | sed -i "$filter" $INDEX | 262 | sed -i "$filter" $INDEX |
| 256 | echo $response | _parse_response >> $INDEX | 263 | echo $response | _parse_response >> $INDEX |
| @@ -313,7 +320,7 @@ _goto_gist() { | |||
| 313 | _delete_gist() { | 320 | _delete_gist() { |
| 314 | for i in "$@"; do | 321 | for i in "$@"; do |
| 315 | _gist_id "$i" | 322 | _gist_id "$i" |
| 316 | curl -X DELETE -s -H "$AUTH_HEADER" $GITHUB_API/gists/$GIST_ID \ | 323 | http_method DELETE $GITHUB_API/gists/$GIST_ID \ |
| 317 | && echo "$i" deleted \ | 324 | && echo "$i" deleted \ |
| 318 | && sed -i -E "/^$i / d" $INDEX | 325 | && sed -i -E "/^$i / d" $INDEX |
| 319 | done | 326 | done |
| @@ -397,6 +404,7 @@ _new_file() { | |||
| 397 | echo /tmp/$filename | 404 | echo /tmp/$filename |
| 398 | } | 405 | } |
| 399 | 406 | ||
| 407 | # FIXME curl bad credential exit code | ||
| 400 | # create a new gist with files | 408 | # create a new gist with files |
| 401 | _create_gist() { | 409 | _create_gist() { |
| 402 | _set_gist "$@" || return 1 | 410 | _set_gist "$@" || return 1 |
| @@ -409,8 +417,7 @@ _create_gist() { | |||
| 409 | echo "\"$(basename $file)\": {\"content\": \"$(sed '$ !s/$/\\n/' $file)\"}," | 417 | echo "\"$(basename $file)\": {\"content\": \"$(sed '$ !s/$/\\n/' $file)\"}," |
| 410 | done | tr -d '\n' | sed 's/^/{/; s/,$/}/' \ | 418 | done | tr -d '\n' | sed 's/^/{/; s/,$/}/' \ |
| 411 | | echo "{ \"public\": $public, \"files\": $(cat -), \"description\": \"$description\"}" \ | 419 | | echo "{ \"public\": $public, \"files\": $(cat -), \"description\": \"$description\"}" \ |
| 412 | | curl -s -H "$AUTH_HEADER" --data @- $GITHUB_API/gists \ | 420 | | http_method POST $GITHUB_API/gists \ |
| 413 | | tee jojo \ | ||
| 414 | | sed '1 s/^/[/; $ s/$/]/' \ | 421 | | sed '1 s/^/[/; $ s/$/]/' \ |
| 415 | | _parse_response $index >> $INDEX | 422 | | _parse_response $index >> $INDEX |
| 416 | 423 | ||