apt 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #!/bin/sh
  2. # {{{ Variables
  3. TARGETS='updates security backports'
  4. TARGET=
  5. # }}}
  6. # {{{ usage()
  7. usage() {
  8. cat <<EOH
  9. USAGE: $(basename "$0") [OPTIONS]
  10. Get updates for packages managed by apt
  11. Options:
  12. -h Shows this help
  13. -t Target ($(echo "${TARGETS}" | sed 's/ / or /g'))
  14. EOH
  15. }
  16. # }}}
  17. # {{{ main()
  18. while getopts "ht:" OPT ; do
  19. case "$OPT" in
  20. h)
  21. usage
  22. exit 0
  23. ;;
  24. t)
  25. TARGET="$OPTARG"
  26. ;;
  27. esac
  28. done
  29. if [ -z "${TARGET}" ]; then
  30. printf "[ERR] Target is missing\n"
  31. usage
  32. exit 1
  33. fi
  34. if ! echo "${TARGET}" | egrep -q "^($(echo "${TARGETS}" | sed 's/ /|/g'))$"; then
  35. printf "[ERR] info '${TARGET}' not available in [$(echo "${TARGETS}" | sed 's/ /, /g')]\n"
  36. usage
  37. exit 1
  38. fi
  39. DISTRO=$(lsb_release -c -s)
  40. case "${TARGET}" in
  41. updates)
  42. apt-get -s -o Debug::NoLocking=true upgrade | grep -c '^Inst'
  43. ;;
  44. security)
  45. apt-get -s -o Debug::NoLocking=true upgrade | egrep -c "^Inst [^ ]+ \[[^]]+\] \([^ ]+ .*(Debian-Security|${DISTRO}-security)"
  46. ;;
  47. backports)
  48. apt-get -s -o Debug::NoLocking=true upgrade | egrep -c "^Inst [^ ]+ \[[^]]+\] \([^ ]+ .*(Debian Backports|${DISTRO}-backports)"
  49. ;;
  50. esac
  51. exit 0
  52. # }}}
  53. # vim: foldmethod=marker foldlevel=0 foldenable