Added install development dependencies functionality.

lint-cleanup
Sam Likins 1 year ago committed by Joseph Werle
parent b9b0ec631e
commit d1e1a76242

@ -1,9 +1,12 @@
#!/usr/bin/env bash #!/usr/bin/env bash
let install_dev=0
## output usage ## output usage
usage () { usage () {
echo "Installs dependencies for a package." echo "Installs dependencies for a package."
echo "usage: bpkg-getdeps [-h|--help]" echo "usage: bpkg-getdeps [-h|--help]"
echo " or: bpkg-getdeps [-d|--dev]"
echo " or: bpkg-getdeps" echo " or: bpkg-getdeps"
} }
@ -18,6 +21,11 @@ bpkg_getdeps () {
usage usage
return 0 return 0
;; ;;
-d|--dev)
shift
install_dev=1
;;
esac esac
## ensure there is a package to read ## ensure there is a package to read
@ -30,10 +38,17 @@ bpkg_getdeps () {
fi fi
# shellcheck disable=SC2002 # shellcheck disable=SC2002
dependencies=$(cat "${pkg}" | bpkg-json -b | grep '\[\"dependencies' | sed "s/\[\"dependencies\",//" | sed "s/\"\]$(printf '\t')\"/@/" | tr -d '"') dependencies=$(cat "${pkg}" | bpkg-json -b | grep '\["dependencies"' | sed "s/\[\"dependencies\",//" | sed "s/\"\]$(printf '\t')\"/@/" | tr -d '"')
# shellcheck disable=SC2206 # shellcheck disable=SC2206
dependencies=(${dependencies[@]}) dependencies=(${dependencies[@]})
if (( 1 == install_dev )); then
# shellcheck disable=SC2002
dependencies_dev=$(cat "${pkg}" | bpkg-json -b | grep '\["dependencies-dev"' | sed "s/\[\"dependencies-dev\",//" | sed "s/\"\]$(printf '\t')\"/@/" | tr -d '"')
# shellcheck disable=SC2206
dependencies=(${dependencies[@]} ${dependencies_dev[@]})
fi
## run bpkg install for each dependency ## run bpkg install for each dependency
for (( i = 0; i < ${#dependencies[@]} ; ++i )); do for (( i = 0; i < ${#dependencies[@]} ; ++i )); do
( (

@ -30,6 +30,7 @@ fi
bpkg_initrc bpkg_initrc
let prevent_prune=0 let prevent_prune=0
let install_dev=0
let force_actions=${BPKG_FORCE_ACTIONS:-0} let force_actions=${BPKG_FORCE_ACTIONS:-0}
let needs_global=0 let needs_global=0
@ -42,10 +43,11 @@ validate_parameters () {
return 0 return 0
} }
## outut usage ## output usage
usage () { usage () {
echo 'usage: bpkg-install [directory]' echo 'usage: bpkg-install [directory]'
echo ' or: bpkg-install [-h|--help]' echo ' or: bpkg-install [-h|--help]'
echo ' or: bpkg-install [-d|--dev]'
echo ' or: bpkg-install [-g|--global] [-f|--force] ...<package>' echo ' or: bpkg-install [-g|--global] [-f|--force] ...<package>'
echo ' or: bpkg-install [-g|--global] [-f|--force] ...<user>/<package>' echo ' or: bpkg-install [-g|--global] [-f|--force] ...<user>/<package>'
} }
@ -192,6 +194,11 @@ bpkg_install () {
force_actions=1 force_actions=1
;; ;;
-d|--dev)
shift
install_dev=1
;;
--no-prune) --no-prune)
shift shift
prevent_prune=1 prevent_prune=1
@ -211,9 +218,14 @@ bpkg_install () {
export BPKG_FORCE_ACTIONS=$force_actions export BPKG_FORCE_ACTIONS=$force_actions
BPKG_DEPS_EXEC="bpkg_getdeps"
if (( 1 == install_dev )); then
BPKG_DEPS_EXEC="${BPKG_DEPS_EXEC} --dev"
fi
## ensure there is a package to install ## ensure there is a package to install
if (( ${#pkgs[@]} == 0 )); then if (( ${#pkgs[@]} == 0 )); then
bpkg_getdeps ${BPKG_DEPS_EXEC}
return $? return $?
fi fi
@ -221,7 +233,7 @@ bpkg_install () {
for pkg in "${pkgs[@]}"; do for pkg in "${pkgs[@]}"; do
if test -d "$(bpkg_realpath "$pkg" 2>/dev/null)"; then if test -d "$(bpkg_realpath "$pkg" 2>/dev/null)"; then
if ! (cd "$pkg" && bpkg_getdeps); then if ! (cd "$pkg" && ${BPKG_DEPS_EXEC}); then
return 1 return 1
fi fi
@ -233,7 +245,7 @@ bpkg_install () {
local i=0 local i=0
for remote in "${BPKG_REMOTES[@]}"; do for remote in "${BPKG_REMOTES[@]}"; do
local git_remote=${BPKG_GIT_REMOTES[$i]} local git_remote=${BPKG_GIT_REMOTES[$i]}
if bpkg_install_from_remote "$pkg" "$remote" "$git_remote" $needs_global; then if bpkg_install_from_remote "$pkg" "$remote" "$git_remote" $needs_global $install_dev; then
did_fail=0 did_fail=0
break break
elif [[ "$?" == '2' ]]; then elif [[ "$?" == '2' ]]; then
@ -262,6 +274,7 @@ bpkg_install_from_remote () {
local remote=$2 local remote=$2
local git_remote=$3 local git_remote=$3
local needs_global=$4 local needs_global=$4
local install_dev=$5
local url='' local url=''
local uri='' local uri=''
@ -506,7 +519,13 @@ bpkg_install_from_remote () {
# install package dependencies # install package dependencies
info "Install dependencies for $name" info "Install dependencies for $name"
(cd "$BPKG_PACKAGE_DEPS/$name" && bpkg_getdeps)
BPKG_DEPS_EXEC="bpkg_getdeps"
if (( 1 == install_dev )); then
BPKG_DEPS_EXEC="${BPKG_DEPS_EXEC} --dev"
fi
(cd "$BPKG_PACKAGE_DEPS/$name" && ${BPKG_DEPS_EXEC})
## grab each script and place in deps directory ## grab each script and place in deps directory
for script in "${scripts[@]}"; do for script in "${scripts[@]}"; do

Loading…
Cancel
Save