forked from kiss-community/kiss
kiss: order argument list in pkg_build based on dependence
This makes input to pkg_build identical when using 'kiss b'/'kiss u' and fixes issues with the former.
This commit is contained in:
parent
31362a7713
commit
dde00196d8
28
kiss
28
kiss
@ -411,7 +411,7 @@ pkg_depends() {
|
||||
pkg_order() {
|
||||
# Order a list of packages based on dependence and take into account
|
||||
# pre-built tarballs if this is to be called from 'kiss i'.
|
||||
order=; redro=; deps=
|
||||
unset order redro deps
|
||||
|
||||
for pkg do case $pkg in
|
||||
/*.tar.*) deps="$deps $pkg" ;;
|
||||
@ -421,12 +421,12 @@ pkg_order() {
|
||||
|
||||
# Filter the list, only keeping explicit packages. The purpose of these
|
||||
# two loops is to order the argument list based on dependence.
|
||||
for pkg in $deps; do
|
||||
contains "$*" "$pkg" || contains "$*" "${pkg##"$ppwd/"}" &&
|
||||
order="$order $pkg " redro=" $pkg $redro"
|
||||
done
|
||||
for pkg in $deps; do case " $* " in *" $pkg "* | *" ${pkg##"$ppwd/"} "*)
|
||||
order="$order $pkg"
|
||||
redro="$pkg $redro"
|
||||
esac done
|
||||
|
||||
deps=
|
||||
unset deps
|
||||
}
|
||||
|
||||
pkg_strip() {
|
||||
@ -624,6 +624,12 @@ pkg_tar() (
|
||||
|
||||
pkg_build() {
|
||||
# Build packages and turn them into packaged tarballs.
|
||||
# Order the argument list and filter out duplicates.
|
||||
pkg_order "$@"
|
||||
|
||||
# See [1] at top of script.
|
||||
# shellcheck disable=2046,2086
|
||||
set -- $order
|
||||
|
||||
log "Resolving dependencies"
|
||||
|
||||
@ -632,12 +638,9 @@ pkg_build() {
|
||||
# differently from those pulled in as dependencies.
|
||||
#
|
||||
# This also resolves all dependencies and stores the result in '$deps'.
|
||||
# Any duplicates are also filtered out.
|
||||
for pkg do
|
||||
contains "$explicit" "$pkg" || {
|
||||
pkg_depends "$pkg" explicit filter
|
||||
explicit="$explicit $pkg "
|
||||
}
|
||||
pkg_depends "$pkg" explicit filter
|
||||
explicit="$explicit $pkg "
|
||||
done
|
||||
|
||||
# If this is an update, don't always build explicitly passsed packages
|
||||
@ -1449,8 +1452,7 @@ pkg_updates() {
|
||||
# shellcheck disable=2046,2086
|
||||
{
|
||||
pkg_update=1
|
||||
pkg_order "$@"
|
||||
pkg_build $order
|
||||
pkg_build "$@"
|
||||
}
|
||||
|
||||
log "Updated all packages"
|
||||
|
Loading…
Reference in New Issue
Block a user