#!/bin/bash
# ===============================================================
#
# PACKAGE MANAGER: APT
# Debian, Ubuntu
#
# included by ../check_packages2install
#
# ---------------------------------------------------------------
# ah <axel.hahn@unibe.ch>
# 2022-06-03  v1.0  ah  first version
# 2022-06-07  v1.1  ah  remove text "Nothing to install"
#                       rename functions
# 2022-10-21  v1.3  ah  remove grep: warning: stray \ before white space
# 2023-10-20  v1.4  ah  harden sudo command execution
# ===============================================================


# ---------------------------------------------------------------
# command to list of updates
function apt.getUpdates(){
    sudo -n apt-get -u upgrade --assume-no
}

# ---------------------------------------------------------------
# extract list of packages 2 install
# global  string  packagemanOut  output of update lister command
function apt.getPackageList(){

    # detect number of line containing "The following packages will be upgraded:"
    typeset -i local iStart
    iStart=$( echo "$packagemanOut" | grep -n '^The following packages will be upgraded:' | cut -f 1 -d ':' )

    if [ $iStart -gt 0 ]; then
        # show packages = text starting with 2 spaces below start line
        # packages are delimited with space -> replace with new line
        echo "$packagemanOut" | sed -n $iStart,\$p | grep "^  " | sed "s#^\ \ ##g" | tr " " "\n"
    fi
}

# ---------------------------------------------------------------
# get status line on apt based systems (debian, ubuntu)
# global  string  packagemanOut  output of update lister command
function apt.getStatusLine(){
  echo "$packagemanOut" | grep "upgraded.*installed"
}

# ---------------------------------------------------------------