# ============= Output of "show" command for a single list =============
database_query_show_single_list ()
{
- local list pkgnamedb flag_filter_skip_unchanged flag_filter_only_target tmpflag_exists put_blankline
+ local list pkgnamedb flag_filter_skip_unchanged flag_filter_only_target flag_negative_listdb tmpflag_exists put_blankline origin matches flag pkg table
+ local currentorigin_is_alll currentorigin_is_target currentorigin_is_requires_requirements
+ local currentorigin_is_initial_requirements currentorigin_is_requires_dependents
+ local currentorigin_is_initial_dependents currentorigin_is_requires_requirements_complement currentorigin_is_relevant
list=$1
pkgnamedb=$2
flag_filter_skip_unchanged=$3
flag_filter_only_target=$4
+ flag_negative_listdb=$5
tmpflag_exists=${TMPDIR}/database_query_show_single_list::exists_item
if [ `cat "${DBDIR}/$list" 2> /dev/null | wc -l` -eq 0 ]
then
[ -n "$put_blankline" ] && message_echo
while read origin
do
- [ -n "$flag_filter_skip_unchanged" -a $opt_skip_unchanged = yes \
- -a ! -e "${DBDIR}/requires/$origin/$flag_filter_skip_unchanged" ] \
- && continue
+ [ -n "$flag_negative_listdb" ] && grep -Fx "$origin" "${DBDIR}/$flag_negative_listdb" 2> /dev/null && continue
+ if [ -n "$flag_filter_skip_unchanged" -a $opt_skip_unchanged = yes ]
+ then
+ matches=no
+ for flag in $flag_filter_skip_unchanged
+ do
+ if [ -e "${DBDIR}/requires/$origin/$flag" ]
+ then
+ matches=yes
+ break
+ fi
+ done
+ [ $matches = no ] && continue
+ fi
if [ -n "$flag_filter_only_target" ]
then
database_query_get_target_attributes currentorigin "$origin"
# ============= Actual operations of "show" command for a single list =============
database_query_show_single_list_exec ()
{
- local subject deptag level dbsuffix flag_filter_skip_unchanged flag_filter_only_target pkgnamedb
+ local subject deptag level dbsuffix flag_filter_skip_unchanged flag_filter_only_target flag_negative_listdb pkgnamedb
subject=$1
deptag=$2
level=$3
dbsuffix=$deptag.$level
flag_filter_skip_unchanged=
flag_filter_only_target=
+ flag_negative_listdb=
pkgnamedb='moved_from obsolete initial'
case $subject in
todo )
message_dependency_scope "$deptag" "$level"
message_echo
list=todo_after_requirements_succeed.$dbsuffix.list
- flag_filter_skip_unchanged=necessary_upgrade.$dbsuffix
+ flag_filter_skip_unchanged="necessary_upgrade.$dbsuffix necessary_upgrade_completed.$dbsuffix"
flag_filter_only_target=y
+ flag_negative_listdb=leaf_ports_to_delete.unselected
;;
resolved )
message_echo "The following ports had problems which have been manually resolved:"
;;
esac
database_query_show_single_list "$list" "$pkgnamedb" \
- "$flag_filter_skip_unchanged" "$flag_filter_only_target"
+ "$flag_filter_skip_unchanged" "$flag_filter_only_target" "$flag_negative_listdb"
}
# ============= Check whether a port is registered in a list =============