#!/bin/bash

apt-get update

echo

#If packages pinned with Synaptic (result 0), filter pinned upgradeables out with grep -v before getting count,
#otherwise (result 1 or 2) get a count of all upgradeables. 

# get all updates
Updates=$(LANG=C apt list --upgradable 2>/dev/null | grep -v ^Listing | grep ']$' | awk -F/ '{print $1}')

# get packages hold
HoldBack=$( (apt-mark showhold; sed -n 's/Package: //p' /var/lib/synaptic/preferences 2>/dev/null)  )

# get number of updates available

Count=$(comm -23 <(echo "$Updates" | sort -u) <(sort -u <<<$HoldBack) | wc -l)

case $Count in
  0)  UpdatesMsg=$(/usr/bin/gettext -d apt-notifier "0 updates available")
      ;;

  1)  UpdatesMsg=$(/usr/bin/gettext -d apt-notifier "1 new update available")
      ;;

  *) #UpdatesMsg="`/usr/bin/gettext -d apt-notifier -s $Count \"$n new updates available\"`" # doesn't work?
      UpdatesMsg=$(/usr/bin/gettext -d apt-notifier -s $Count "Updates") # so use this
      ;;
esac

echo $UpdatesMsg
echo

exit
