#!/bin/bash -e

export PLUGIN_ARGS="$@"

redis-cli --raw info memory 2>&1 | gawk -F: '
  function get(key) {
    value = v[key]
    if (value=="") return ""
    return sprintf("%s=%sB", key, value)
  }
  BEGIN {
    error = "running"
    ret = 0
  }
  /^[a-z_]+:/ {
    gsub("\r", "", $2) # Fix CRLF generated strings.
    v[$1] = $2
    next
  }
  /^#/ { next }
  /^$/ { next }
  {
    error = $0
    ret = 2
  }
  END {
    reply = sprintf("|%s %s %s %s", \
      get("used_memory"), \
      get("used_memory_rss"), \
      get("used_memory_peak"), \
      get("maxmemory") \
    )
    if (ret==2) {
      print "redis CRITICAL - " error reply
    } else if (ret==1) {
      print "redis WARNING - " error reply
    } else {
      print "redis OK - " error reply
    }
    exit ret
  }
'
