#!/bin/bash
#
# sccl_my_packages [-p|-g] [<package>]
#
# Zeilen aus packages.conf, die in meinen oder keiner Gruppe sind
# wenn $SHOWGROUPS gesetzt ist, dann nur aus $SHOWGROUPS
#
# -p: nur Paketnames ausgen
# -g: Gruppennamen mit ausgeben
#################################################################
#
. $(dirname $0)/globals.settings
#
{ [[ -r $PACKAGES ]] && cat $PACKAGES || ./sccl_read_config PACKAGES
} | if [[ "$1" = "-p" ]]; then
      awk -v SG="$SHOWGROUPS" -v G="$MYGROUPS" -v P="$2" '
        /^[[]/ {grp = gensub(/[[]([^]]*)[]].*/, "\\1", "g", $0) }
        !/^[[]/ && $1 !~ "#|^$" { if( ((!grp && !SG) || grp ~ G) && (P == "" || P == $1) )
                                    print $1
                                }'
    elif [[ "$1" = "-g" ]]; then
      awk -v SG="$SHOWGROUPS" -v G="$MYGROUPS" -v P="$2" '
        /^[[]/ { grp = gensub(/[[]([^]]*)[]].*/, "\\1", "g", $0)
                 if( ((!grp && !SG) || grp ~ G) && (P == "" || P == $1) )
                   print $1
               }
        !/^[[]/ && $1 !~ "#|^$" { if( ((!grp && !SG) || grp ~ G) && (P == "" || P == $1) )
                                    print
                                }'
    else
      awk -v SG="$SHOWGROUPS" -v G="$MYGROUPS" -v P="$1" '
        /^[[]/ { grp = gensub(/[[]([^]]*)[]].*/, "\\1", "g", $0) }
        !/^[[]/ && $1 !~ "#|^$" { if( ((!grp && !SG) || grp ~ G) && (P == "" || P == $1) )
                                    print
                                }'
    fi
