summarylogtreecommitdiffstats
path: root/task_notify.sh
blob: eddd3a55c3e24680aeb917ea782ad0bc0a3e2f60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/bin/sh

. /usr/share/remoteit/functions.sh

parse_command() {
  local cmd=$1

  case $cmd in
  0)
    echo /bulk/job/task/update
    ;;
  1)
    echo /bulk/job/task/done
    ;;
  2)
    echo /bulk/job/task/failed
    ;;
  *[0-9])
    echo "/bulk/service/status/$(printf "\x$(printf %x $((cmd + 94)))")"
    ;;
  *)
    echo "/bulk/service/status/$cmd"
    ;;
  esac
}

cmd=$(parse_command "$1")
shift
task_id=$1
shift
api_base=${1:-api.remote.it/apv/v27}
shift
status=$(printf "%b" "$*")

output=$(mktemp /tmp/remoteit.XXXXXX)

code=$(jq -n \
  --arg taskid "$task_id" \
  --arg description "$status" \
  '{$taskid, $description}' | curl -sfo "$output" -w "%{http_code}" -d @- "https://$api_base$cmd")

if [ "$code" -eq 200 ]; then
  echo "$code $(jq -er '.status' "$output")"
else
  echo "$code $(jq -er '.reason // "FAIL"' "$output")"
fi

rm -f "$output"