aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordylan.araps@gmail.com <dylan.araps@gmail.com>2019-09-14 15:10:47 +0000
committerdylan.araps@gmail.com <dylan.araps@gmail.com>2019-09-14 15:10:47 +0000
commitd10e723548b88c91c133ac81a9ecfd5594f35510 (patch)
tree8de71ea1aadb59c135fbaff8a7ce1fb845dbbd6d
parent92f8c8146c2c06f57fa35d61e2e84cbe12f033cd (diff)
downloadcpt-d10e723548b88c91c133ac81a9ecfd5594f35510.tar.gz
kiss: smarter handling of pre-built binaries and resolving dependencies.'
FossilOrigin-Name: 4104ee8a1179808ffc5ac70f494d4b244a481a43c50da373ee544dde47127d98
-rwxr-xr-xkiss35
1 files changed, 18 insertions, 17 deletions
diff --git a/kiss b/kiss
index 113d15f..3d8226d 100755
--- a/kiss
+++ b/kiss
@@ -396,21 +396,21 @@ pkg_build() {
for pkg; do
# Don't check for a pre-built package if it was passed
# to KISS directly.
- contains "$explicit_build" "$pkg" && continue
-
- # Figure out the version and release.
- read -r version release < "$(pkg_find "$pkg")/version"
-
- # Install any pre-built binaries if they exist.
- # This calls 'args' to inherit a root check and call
- # to 'sudo' to elevate permissions.
- [ -f "$bin_dir/$pkg#$version-$release.tar.gz" ] && {
- log "[$pkg] Found pre-built binary, installing"
- args i "$bin_dir/$pkg#$version-$release.tar.gz"
-
- # Remove the now installed package from the build
- # list. No better way than using 'sed' in POSIX 'sh'.
- set -- $(echo " $* " | sed "s/ $pkg / /")
+ contains "$explicit_build" "$pkg" || {
+ # Figure out the version and release.
+ read -r version release < "$(pkg_find "$pkg")/version"
+
+ # Install any pre-built binaries if they exist.
+ # This calls 'args' to inherit a root check and call
+ # to 'sudo' to elevate permissions.
+ [ -f "$bin_dir/$pkg#$version-$release.tar.gz" ] && {
+ log "[$pkg] Found pre-built binary, installing"
+ (KISS_FORCE=1 args i "$bin_dir/$pkg#$version-$release.tar.gz")
+
+ # Remove the now installed package from the build
+ # list. No better way than using 'sed' in POSIX 'sh'.
+ set -- $(echo " $* " | sed "s/ $pkg / /")
+ }
}
done
@@ -443,6 +443,7 @@ pkg_build() {
# Finally build and create tarballs for all passed packages and
# dependencies.
for pkg; do
+ log "[$pkg] Starting build"
repo_dir=$(pkg_find "$pkg")
# Install built packages to a directory under the package name
@@ -475,7 +476,7 @@ pkg_build() {
contains "$explicit" "$pkg" && [ -z "$pkg_update" ] && continue
log "[$pkg] Needed as a dependency or has an update, installing"
- args i "$pkg"
+ (KISS_FORCE=1 args i "$pkg")
done
# End here as this was a system update and all packages have been installed.
@@ -871,7 +872,7 @@ args() {
# Rerun the script with 'sudo' if the user isn't root.
# Cheeky but 'sudo' can't be used on shell functions themselves.
[ "$(id -u)" = 0 ] || {
- sudo -E kiss "$action" "$@"
+ sudo -E KISS_FORCE="$KISS_FORCE" kiss "$action" "$@"
return
}
;;