OSDN Git Service

[NEW] show inst_by_pkg commands are added.
[portsreinstall/current.git] / lib / libdatabase_query.sh
index 36ac294..b6ce643 100644 (file)
@@ -293,7 +293,7 @@ database_query_show_list_inclusion_of_matching_port ()
        level=$5
        shift 5
        message_echo "[$grandtitle]"
-       message_dependency_scope
+       message_dependency_scope "$deptag" "$level"
        message_echo
        isfirst=y
        for origin_target in `pkgsys_eval_ports_glob "$@"`
@@ -332,15 +332,17 @@ database_query_show_list_inclusion_of_matching_port ()
 # ============= Output of "show" command for port lists =============
 database_query_show_port_lists ()
 {
-       local grandtitle title list listdb pkgnamedb isfirst origin_target pkg_target table_target list_target
+       local grandtitle title list listdb pkgnamedb deptag level isfirst origin_target pkg_target table_target list_target
        grandtitle=$1
        title=$2
        list=$3
        listdb=$4
        pkgnamedb=$5
-       shift 5
+       deptag=$6
+       level=$7
+       shift 7
        message_echo "[$grandtitle]"
-       message_dependency_scope
+       message_dependency_scope "$deptag" "$level"
        message_echo
        isfirst=y
        for origin_target in `pkgsys_eval_ports_glob "$@"`
@@ -397,6 +399,49 @@ database_query_show_port_lists ()
        :
 }
 
+# ============= Output of "show" command for log files =============
+database_query_show_log ()
+{
+       local grandtitle title list listdb pkgnamedb isfirst origin_target pkg_target table_target list_target
+       grandtitle=$1
+       title=$2
+       list=$3
+       listdb=$4
+       pkgnamedb=$5
+       shift 5
+       message_echo "[$grandtitle]"
+       message_echo
+       isfirst=y
+       for origin_target in `pkgsys_eval_ports_glob "$@"`
+       do
+               pkg_target=
+               for table_target in $pkgnamedb
+               do
+                       pkg_target=`cat "${DBDIR}/$table_target/$origin_target/pkgtag" 2> /dev/null` || :
+                       [ -n "$pkg_target" ] && break
+               done
+               [ -n "$pkg_target" ] || continue
+               [ "$isfirst" = y ] || message_echo
+               isfirst=n
+               [ $opt_batch_mode = no ] && printf "$title\n" "$origin_target ($pkg_target)"
+               list_target=
+               for table_target in $listdb
+               do
+                       list_target=${DBDIR}/$table_target/$origin_target/$list
+                       [ -e "$list_target" ] && break
+               done
+               [ -e "$list_target" ] || continue
+               cat  < $list_target
+               echo
+       done
+       if [ "$isfirst" = y ]
+       then
+               message_echo "ERROR: No inspected port matches the glob(s)." >&2
+               exit 1
+       fi
+       :
+}
+
 # ============= Output of "show" command for two column lists =============
 database_query_show_two_column_lists ()
 {
@@ -536,12 +581,12 @@ database_query_show_single_list_exec ()
        dbsuffix=$deptag.$level
        flag_filter_skip_unchanged=
        flag_filter_only_target=
-       pkgnamedb='requires obsolete initial'
+       pkgnamedb='moved_from obsolete initial'
        case $subject in
        todo )
                message_echo "The following ports remain in the (re)installation queue for the current do/redo process:"
                message_echo "It is noted that ports to be skipped can be included here."
-               message_dependency_scope
+               message_dependency_scope "$deptag" "$level"
                message_echo
                list=stage.loop_list/reinst_todo.remain
                [ ${DBDIR}/reinst_order.list -nt ${DBDIR}/$list ] && list=reinst_order.list
@@ -550,7 +595,7 @@ database_query_show_single_list_exec ()
                ;;
        done )
                message_echo "The following ports have been successfully (re)installed or newly installed:"
-               message_dependency_scope
+               message_dependency_scope "$deptag" "$level"
                message_echo
                list=success.$dbsuffix.list
                flag_filter_skip_unchanged=necessary_upgrade_completed.$dbsuffix
@@ -558,7 +603,7 @@ database_query_show_single_list_exec ()
                ;;
        redo )
                message_echo "The following ports need (re)installation but are to be skipped until any of their failed requirements succeeds:"
-               message_dependency_scope
+               message_dependency_scope "$deptag" "$level"
                message_echo
                list=todo_after_requirements_succeed.$dbsuffix.list
                flag_filter_skip_unchanged=necessary_upgrade.$dbsuffix
@@ -569,6 +614,11 @@ database_query_show_single_list_exec ()
                message_echo
                list=manually_done.list
                ;;
+       inst_by_pkg )
+               message_echo "The following ports are configured default and installed by prebuilt packages"
+               message_echo
+               list=installation_complete_by_pkg.list
+               ;;
        failure )
                message_echo "The following ports experienced failures and kept to be old or uninstalled:"
                message_echo
@@ -605,14 +655,40 @@ database_query_show_single_list_exec ()
                message_echo "The following leaf, obsolete or unneeded ports had been once deleted but are to be or have been restored:"
                message_echo
                list=stage.loop_list/ports_to_restore
-               pkgnamedb='obsolete initial'
+               pkgnamedb='moved_from obsolete initial'
                flag_filter_only_target=y
                ;;
        deleted )
                message_echo "The following leaf, obsolete or unneeded ports are to be or have been deleted:"
                message_echo
                list=stage.loop_list/ports_to_delete
-               pkgnamedb='obsolete initial'
+               pkgnamedb='moved_from obsolete initial'
+               flag_filter_only_target=y
+               ;;
+       leaves )
+               if [ -z "$deptag" ]
+               then
+                       message_echo "The following ports are all detected leaf ports:"
+                       list=leaf_ports
+               else
+                       message_echo "The following ports are all $deptag leaf ports:"
+                       list=leaf_ports_to_delete.$deptag
+               fi
+               message_echo
+               pkgnamedb='moved_from obsolete initial'
+               flag_filter_only_target=y
+               ;;
+       obsolete )
+               if [ -z "$deptag" ]
+               then
+                       message_echo "The following ports are all detected obsolete ports:"
+                       list=obsolete_ports.can_be_deleted
+               else
+                       message_echo "The following ports are all $deptag obsolete ports:"
+                       list=obsolete_ports_to_delete.$deptag
+               fi
+               message_echo
+               pkgnamedb='moved_from obsolete initial'
                flag_filter_only_target=y
                ;;
        esac
@@ -645,6 +721,9 @@ database_query_exists_in_list ()
        resolved )
                list=manually_done.list
                ;;
+       inst_by_pkg )
+               list=installation_complete_by_pkg.list
+               ;;
        failure )
                list=failed.list
                ;;