#!/bin/bash
# Cache the file for 30 minutes
# If you want to override this, put the command in cron.
# We cache because it is a 1sec delay, which is painful for the poller
if [ -x /usr/bin/dpkg-query ]; then
  DATE=$(date +%s)
  FILE=/var/cache/librenms/agent-local-dpkg
  
  [ -d /var/cache/librenms ] || mkdir -p /var/cache/librenms
  
  if [ ! -e $FILE ]; then
    dpkg-query -W --showformat='${Status} ${Package} ${Version} ${Architecture} ${Installed-Size}\n'|grep " installed "|cut -d\  -f4- > $FILE
  fi
  FILEMTIME=$(stat -c %Y $FILE)
  FILEAGE=$(($DATE-$FILEMTIME))
  if [ $FILEAGE -gt 1800 ]; then
    dpkg-query -W --showformat='${Status} ${Package} ${Version} ${Architecture} ${Installed-Size}\n'|grep " installed "|cut -d\  -f4- > $FILE
  fi
  echo "<<<dpkg>>>"
  cat $FILE
fi

