[__package_pkgng_freebsd] Bootstrap pkg if necessary

In a pristine FreeBSD base installation, pkg is really a bootstrapper utility,
in such cases the type used to fail instead of automatically bootstrapping pkg.
This commit is contained in:
evilham 2020-09-29 19:44:47 +02:00
parent 652c891858
commit f994226d0e
3 changed files with 14 additions and 0 deletions

View file

@ -0,0 +1,4 @@
#!/bin/sh -e
if pkg -N >/dev/null 2>&1; then
echo "YES"
fi

View file

@ -21,6 +21,11 @@
# Retrieve the status of a package - parsed dpkg output # Retrieve the status of a package - parsed dpkg output
# #
if ! pkg -N >/dev/null 2>&1; then
# Nothing to do if pkg is not bootstrapped
exit
fi
if [ -f "$__object/parameter/name" ]; then if [ -f "$__object/parameter/name" ]; then
name="$(cat "$__object/parameter/name")" name="$(cat "$__object/parameter/name")"
else else

View file

@ -43,6 +43,7 @@ fi
repo="$(cat "$__object/parameter/repo")" repo="$(cat "$__object/parameter/repo")"
state="$(cat "$__object/parameter/state")" state="$(cat "$__object/parameter/state")"
curr_version="$(cat "$__object/explorer/pkg_version")" curr_version="$(cat "$__object/explorer/pkg_version")"
pkg_bootstrapped="$(cat "$__object/explorer/pkg_bootstrapped")"
add_cmd="pkg install -y" add_cmd="pkg install -y"
rm_cmd="pkg delete -y" rm_cmd="pkg delete -y"
upg_cmd="pkg upgrade -y" upg_cmd="pkg upgrade -y"
@ -73,6 +74,10 @@ execcmd(){
;; ;;
esac esac
if [ -z "${pkg_bootstrapped}" ]; then
echo "pkg bootstrap -y >/dev/null 2>&1"
fi
echo "$_cmd >/dev/null 2>&1" # Silence the output of the command echo "$_cmd >/dev/null 2>&1" # Silence the output of the command
echo "status=\$?" echo "status=\$?"
echo "if [ \"\$status\" -ne \"0\" ]; then" echo "if [ \"\$status\" -ne \"0\" ]; then"