diff options
author | Daniel Friesel <derf@derf.homelinux.org> | 2008-08-03 11:47:30 +0200 |
---|---|---|
committer | Daniel Friesel <derf@derf.homelinux.org> | 2008-08-03 11:47:30 +0200 |
commit | 91b26c3f5e55db39eb2afce52453f47fd3c7f360 (patch) | |
tree | a88b696d0df1182c5ba06cc0b8adbf59560b4d94 | |
parent | 374453b5cf26dca7d78b3415916b1843acc9405c (diff) |
bin/pkg: Added support for dependencies on files in $PATH
-rwxr-xr-x | bin/pkg | 40 |
1 files changed, 31 insertions, 9 deletions
@@ -268,24 +268,45 @@ exec_hook () { } # Check dependencies and offer to install them +check_path_dep () { + which $1 > /dev/null +} + check_deps () { [[ -r $PDIR/$1/dependencies ]] || return 0 - DEPS=($(cat $PDIR/$1/dependencies)) - INSTALL=() - for dep in $DEPS; { - if [[ ! -d $PDIR/$dep ]] { - INSTALL+="$dep" + dependencies=($(cat $PDIR/$1/dependencies)) + install=() + path_install=() + + for dep in $dependencies; { + pathdep=${dep#=} + if [[ $dep != $pathdep ]] { + if (! check_path_dep $pathdep) { + path_install+=$pathdep + } + } else { + if [[ ! -d $PDIR/$dep ]] { + install+=$dep + } } } - if [[ -n "$INSTALL" ]] { + + if [[ -n $install ]] { + clear_line info "$1 has unmet dependencies: " - echo $INSTALL + echo $install if (confirm_yes "Install dependencies?") { - for pkg in $INSTALL; { + for pkg in $install; { pkg_add $pkg } } } + if [[ -n $path_install ]] { + clear_line + info "$1 has unmet dependencies: " + echo $path_install + echo 'Please make sure these files are within $PATH' + } } check_conflicts () { @@ -298,6 +319,7 @@ check_conflicts () { } } if [[ -n $REMOVE ]] { + clear_line info "$1 conflicts with the following packages: " echo $REMOVE if (confirm_no "Remove conflicting packages and proceed with installation?") { @@ -305,7 +327,7 @@ check_conflicts () { pkg_remove $pkg } } else { - die "Installation aborted" + die "Installation aborted\n" } } } |