diff options
Diffstat (limited to 'old/dump.sh')
-rwxr-xr-x | old/dump.sh | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/old/dump.sh b/old/dump.sh new file mode 100755 index 0000000..bc50cfb --- /dev/null +++ b/old/dump.sh @@ -0,0 +1,58 @@ +#!/bin/sh + +if [ -z $CANKEY ] +then + echo Provide an API key in the environment variable CANKEY. + return 1 +fi +if ! [ -d dump ] +then + mkdir dump +fi +cd dump +base=https://sdccd.instructure.com/api/v1/ +process_json() +{ + jq -M +} +get() +{ + url=$base$1 + curl -s -X GET "$url" -H "Authorization: Bearer $CANKEY" | jq -M +} + +get users/self/folders > folders +get users/self/files > files + +get_id() +{ + < folders sed -e 's/,.*//g' -e 's/.*://g' +} +get_name() +{ + < folders grep id.:$1 | sed -e 's/.*name":"//' -e 's/",.*//' +} + +# Recursively resolve directories and files. +# Empty response: [] +get_dir() +{ + id=$1 + name=$2 + echo $id + mkdir $id + cd $id + echo $name > name + get folders/$id/files > files + get folders/$id/folders > folders + for i in $(get_id) + do + get_dir $i "$(get_name $i)" + done + cd .. +} + +for i in $(get_id) +do + get_dir $i +done |