Guest User

Untitled

a guest
Dec 14th, 2017
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. #!/usr/bin/env bash
  2.  
  3. # Usage: make_event my-event test "hello world" -> {"name":"my-event","test":"hello world","unixtime":123}
  4.  
  5. make_event() {
  6. if ! (( "$#" % 2)); then
  7. echo "log_event expects an uneven number of arguments"
  8. echo "Usage: $0 <event-name> [[<key> <val>]...]"
  9. exit 1
  10. fi
  11.  
  12. build_pairs() {
  13. if [[ "$#" -eq 1 ]]; then
  14. return
  15. fi
  16.  
  17. echo --arg "var$1" "$2" --arg "val$1" \""$3"\" "$(build_pairs $(($1 + 1)) "${@:4}")"
  18. }
  19.  
  20. build_pipeline() {
  21. if [[ "$#" -eq 1 ]]; then
  22. return
  23. fi
  24.  
  25. echo ' | .[$'var$1'] = $'val$1 $(build_pipeline $(($1 + 1)) "${@:4}")
  26.  
  27. }
  28.  
  29. local PIPELINE=$(build_pipeline 0 "${@:2}")
  30. local PAIRS=$(build_pairs 0 "${@:2}")
  31.  
  32. eval jq -c -n $PAIRS \
  33. --arg name "$1" \
  34. --arg unixtime "$(date +%s)" \
  35. --arg formattedtime \"$(date)\" \' \
  36. ' . | .["name"] = $name ' \
  37. ' | .["unixtime"] = $unixtime ' \
  38. ' | .["formattedtime"] = $formattedtime ' \
  39. "$PIPELINE"\' <<< "{}"
  40. }
  41.  
  42. log_event() {
  43. EVENT="$(make_event "$@")"
  44. echo "$(date) BACKUP_EVENT|$EVENT"
  45. if [[ ! -z "$EVENT_LOG" ]]; then
  46. echo "$EVENT" >> "$EVENT_LOG"
  47. fi
  48. }
Add Comment
Please, Sign In to add comment