diff --git a/kiss b/kiss index 0990a1b..8924101 100755 --- a/kiss +++ b/kiss @@ -41,14 +41,17 @@ pkg_setup() { } pkg_depends() { - while read -r dep; do - pkg_list "$dep" || + while read -r dep opt; do + pkg_list "$dep" || { + [ "$1" = install ] && [ "$opt" = make ] && return + case $missing in - *" $dep,"*) ;; - *) missing="$missing $dep," + *" $dep${opt:+ ($opt)},"*) ;; + *) missing="$missing $dep${opt:+ ($opt)}," pkg_setup "$dep" pkg_depends ;; esac + } done 2>/dev/null < depends } @@ -200,7 +203,9 @@ args() { pkg_checksum log "Generated checksums." ;; - i*) pkg_install ;; + i*) pkg_depends install + pkg_install ;; + l*) pkg_list "$2" ;; r*) pkg_remove || die "Package '$name' not installed" ;; u*) pkg_updates ;;