# Return the total storage space occupied by the installed files in bytes
pkg info -qs "$@" 2> /dev/null | sed 's/KiB$/*1024/;s/MiB$/*1024^2/;s/GiB$/*1024^3/;s/B$//' | tr '\n' + | sed 's/+$//' | bc -l
}
- pkg_info_flavor ()
+ pkg_info_flavors ()
+ # For an unflavored pattern, all matching flavors are returned.
{
local glob_unflavored
glob_unflavored=$1
pkg query -g '%At\t%Av' "$glob_unflavored" 2> /dev/null | env LANG=C grep -E '^flavor[[:space:]]' | cut -f 2
}
- pkg_info_flavored_origin ()
+ pkg_info_flavored_origins ()
+ # For an unflavored pattern, all matching flavors are returned.
{
local glob_unflavored origin_unflavored
glob_unflavored=$1
origin_unflavored=`pkg_info_qo "$glob_unflavored" 2> /dev/null || :`
- flavor=`pkg_info_flavor "$glob_unflavored" 2> /dev/null || :`
- [ -z "$flavor" ] || flavor=@$flavor
- echo "$origin_unflavored$flavor"
+ flavors=`pkg_info_flavors "$glob_unflavored" 2> /dev/null || :`
+ if [ -z "$flavors" ]
+ then
+ echo "$origin_unflavored"
+ else
+ for flavor in $flavors
+ do
+ echo "$origin_unflavored@$flavor"
+ done
+ fi
}
pkg_info_all_flavored_origins ()
{
# Return the total storage space occupied by the installed files in bytes
pkg_info -qs "$@" 2> /dev/null | sed 's/[^0-9]*/*1024/' | tr '\n' + | sed 's/+$//' | bc -l
}
- pkg_info_flavor ()
+ pkg_info_flavors ()
{
pkg_info -qe "$@" 2> /dev/null && echo
:
origin=$1
origin_unflavored=`pkgsys_get_unflavored_origin "$origin"`
flavor_origin=`pkgsys_get_flavor_from_origin "$origin"`
- pkg_info_qO "$origin_unflavored" 2> /dev/null | while read pkgname
- do
- flavor_pkg=`pkg_info_flavor "$pkgname"`
- if [ "x$flavor_origin" = "x$flavor_pkg" ]
- then
- echo "$pkgname"
- break
- fi
- done
+ if [ -n "$flavor_origin" ]
+ then
+ for pkgname in `pkg_info_qO "$origin_unflavored" 2> /dev/null`
+ do
+ for flavor_pkg in `pkg_info_flavors "$pkgname"`
+ do
+ if [ "x$flavor_origin" = "x$flavor_pkg" ]
+ then
+ echo "$pkgname"
+ return
+ fi
+ done
+ done
+ else
+ pkg_info_qO "$origin_unflavored" 2> /dev/null
+ fi
:
}
origin_unflavored=`pkgsys_get_unflavored_origin "$origin"`
pkg_info_eO "$origin_unflavored" 2> /dev/null || return
flavor_origin=`pkgsys_get_flavor_from_origin "$origin"`
- flavor_pkg=`pkg_info_flavor "$origin_unflavored"`
- [ "x$flavor_origin" = "x$flavor_pkg" ]
+ for flavor_pkg in `pkg_info_flavors "$origin_unflavored"`
+ do
+ [ "x$flavor_origin" = "x$flavor_pkg" ] && return
+ done
+ false
}
# ============= Generate the package names vs origins table at the initial state =============
else
origin_unflavored=`pkgsys_get_unflavored_origin "$origin"`
flavor_origin=`pkgsys_get_flavor_from_origin "$origin"`
- pkg_info_qO "$origin_unflavored" 2> /dev/null | while read pkgname
+ for pkgname in `pkg_info_qO "$origin_unflavored" 2> /dev/null`
do
- flavor_pkg=`pkg_info_flavor "$pkgname"`
- if [ "x$flavor_origin" = "x$flavor_pkg" ]
- then
- echo "$pkgname"
- break
- fi
+ for flavor_pkg in `pkg_info_flavors "$pkgname"`
+ do
+ if [ "x$flavor_origin" = "x$flavor_pkg" ]
+ then
+ echo "$pkgname"
+ return
+ fi
+ done
done
fi
:
}
# ============= Check whether the port options database is once saved =============
-pkgsys_exists_saved_port_oprions_timestamps ()
+pkgsys_exists_saved_port_options_timestamps ()
{
[ -d "${DBDIR}/ls_dbdir" ]
}
# ============= Get the current all timestamp information of port options =============
-pkgsys_get_current_port_oprions_timestamp ()
+pkgsys_get_current_port_options_timestamp ()
{
local portdb_needle_regexp
portdb_needle_regexp=`str_escape_regexp "$1"`
}
# ============= Get the saved all timestamp information of port options =============
-pkgsys_get_saved_port_oprions_timestamps_all ()
+pkgsys_get_saved_port_options_timestamps_all ()
{
mkdir -p "${DBDIR}/ls_dbdir"
cat "${DBDIR}/ls_dbdir/"*.log 2> /dev/null || :
}
# ============= Convert a list of port origins to port options timestamp log names =============
-pkgsys_conv_portorigin_to_port_oprion_timestamp_logname ()
+pkgsys_conv_portorigin_to_port_option_timestamp_logname ()
{
sed 's|/|_|'
}
# ============= Get the file name of the port options database of a port =============
-pkgsys_get_port_oprion_database ()
+pkgsys_get_port_option_database ()
{
local origin
origin=$1
}
# ============= Save the timestamp information of port options of a port =============
-pkgsys_save_port_oprion_timestamp ()
+pkgsys_save_port_option_timestamp ()
{
local origin portoptlog portoptdb
origin=$1
- portoptlog=`echo "$origin" | pkgsys_conv_portorigin_to_port_oprion_timestamp_logname`
- portoptdb=`pkgsys_get_port_oprion_database "$origin"`
+ portoptlog=`echo "$origin" | pkgsys_conv_portorigin_to_port_option_timestamp_logname`
+ portoptdb=`pkgsys_get_port_option_database "$origin"`
mkdir -p "${DBDIR}/ls_dbdir"
- pkgsys_get_current_port_oprions_timestamp "$portoptdb" > ${DBDIR}/ls_dbdir/$portoptlog.log 2> /dev/null || :
+ pkgsys_get_current_port_options_timestamp "$portoptdb" > ${DBDIR}/ls_dbdir/$portoptlog.log 2> /dev/null || :
}
# ============= Get changed port options from the saved point =============
-pkgsys_get_changed_port_oprions ()
+pkgsys_get_changed_port_options ()
{
local saved_log current_log tmp_log
saved_log=$1
current_log=$2
- tmp_log=${TMPDIR}/pkgsys_get_changed_port_oprions.log
+ tmp_log=${TMPDIR}/pkgsys_get_changed_port_options.log
{
env LANG=C grep -vxF -f "$current_log" "$saved_log" || :
env LANG=C grep -vxF -f "$saved_log" "$current_log" || :