OSDN Git Service

[BUG FIX] Packages for which the flavor mechanism is newly introduced sometimes had...
[portsreinstall/current.git] / lib / libdatabase_query.sh
index 7837a71..4623101 100644 (file)
@@ -58,15 +58,27 @@ database_query_show_list_failure ()
        :
 }
 
+# ============= Get a list of failed restoration of required conflict =============
+database_query_get_required_deleted_conflicts ()
+{
+       local tmp_filter
+       tmp_filter=${TMPDIR}/database_query_get_required_deleted_conflicts:filter
+       str_escape_regexp_filter < ${DBDIR}/moved_ports | sed 's/^/^/;s/$/[[:space:]].*/' > $tmp_filter
+       env LANG=C grep -v -f "$tmp_filter" "${DBDIR}/deleted_conflicts" 2> /dev/null
+}
+
 # ============= Show a list of failed restoration of conflict =============
 database_query_show_list_failed_conflicts_restoration ()
 {
-       if [ `cat "${DBDIR}/deleted_conflicts" 2> /dev/null | wc -l` -eq 0 ]
+       local tmp_deleted_conflicts
+       tmp_deleted_conflicts=${TMPDIR}/database_query_show_list_failed_conflicts_restoration:deleted_conflicts
+       
+       if ! database_query_get_required_deleted_conflicts > $tmp_deleted_conflicts
        then
                message_echo "INFO: No item is registered in this list."
                return 1
        fi
-       env LANG=C grep -v -E -f "${DBDIR}/ports_to_delete.grep_pattern_col1" "${DBDIR}/deleted_conflicts" \
+       env LANG=C grep -v -E -f "${DBDIR}/ports_to_delete.grep_pattern_col1" "$tmp_deleted_conflicts" \
                | while read origin pkg
                do
                        pkg_regexp=`str_escape_regexp "$pkg"`
@@ -833,8 +845,8 @@ database_query_exists_in_list ()
                list=`ls "${DBDIR}"/fossil_pkgs/fossil_since_* | head -n 1`
                ;;
        conflict )
-               env LANG=C grep -v -E -f "${DBDIR}/ports_to_delete.grep_pattern_col1" "${DBDIR}/deleted_conflicts" 2> /dev/null \
-                       | env LANG=C grep -q -E "^${origin_esc}[[:space:]]"
+               database_query_get_required_deleted_conflicts | env LANG=C grep -v -E -f "${DBDIR}/ports_to_delete.grep_pattern_col1" 2> /dev/null \
+                       | env LANG=C grep -q -E "^${origin_esc}[[:space:]]" || :
                return
                ;;
        taboo )