mirror of https://github.com/bpkg/bpkg
add recursive dependency resolution via package.json
parent
cd9fdc79fe
commit
af0efc54c5
@ -0,0 +1 @@
|
||||
lib/getdeps/getdeps.sh
|
@ -0,0 +1,47 @@
|
||||
#!/bin/bash
|
||||
|
||||
## output usage
|
||||
usage () {
|
||||
echo "Installs dependencies for a package."
|
||||
echo "usage: bpkg-getdeps [-h|--help]"
|
||||
echo " or: bpkg-getdeps"
|
||||
}
|
||||
|
||||
## Read a package property
|
||||
bpkg_getdeps () {
|
||||
local cwd="`pwd`"
|
||||
local pkg="${cwd}/package.json"
|
||||
|
||||
## parse flags
|
||||
case "$1" in
|
||||
-h|--help)
|
||||
usage
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
|
||||
## ensure there is a package to read
|
||||
if ! test -f "${pkg}"; then
|
||||
echo 2>&1 "error: Unable to find \`package.json' in `pwd`"
|
||||
return 1
|
||||
fi
|
||||
|
||||
dependencies=$(cat "${pkg}" | bpkg-json -b | grep '\[\"dependencies' | sed "s/\[\"dependencies\",//" | sed "s/\"\]$(printf '\t')\"/@/" | tr -d '"')
|
||||
dependencies=($(echo ${dependencies[@]}))
|
||||
|
||||
## run bpkg install for each dependency
|
||||
for (( i = 0; i < ${#dependencies[@]} ; ++i )); do
|
||||
(
|
||||
local package=${dependencies[$i]}
|
||||
bpkg install ${package}
|
||||
)
|
||||
done
|
||||
return 0
|
||||
}
|
||||
|
||||
if [[ ${BASH_SOURCE[0]} != $0 ]]; then
|
||||
export -f bpkg_getdeps
|
||||
else
|
||||
bpkg_getdeps "${@}"
|
||||
exit $?
|
||||
fi
|
Loading…
Reference in New Issue