You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.4 KiB
56 lines
1.4 KiB
#!/bin/bash
|
|
|
|
MANDATORY_PACKAGES_STRING="nginx php-fpm postgresql-client php-pgsql php-intl php-curl php-gd php-zip php-imap php-xml php-mbstring"
|
|
|
|
function check() {
|
|
PREFIX="recipe:dolibarr:check"
|
|
: $PREFIX
|
|
|
|
check_mandatory_packages || return 11
|
|
check_one_release || return 12
|
|
|
|
echo "container <$CONTAINER> approved successfully!"
|
|
return 0
|
|
}
|
|
|
|
function check_mandatory_packages() {
|
|
lxc exec "$CONTAINER" -- bash <<EOF
|
|
set -Eeuo pipefail
|
|
mapfile -t PACKAGES <<< "$MANDATORY_PACKAGES_STRING"
|
|
for package in \${PACKAGES[@]}; do
|
|
dpkg -l "\$package" 2>/dev/null | grep -q ^ii
|
|
done
|
|
EOF
|
|
}
|
|
|
|
function check_one_release() {
|
|
lxc exec "$CONTAINER" -- /TOOLBOX/fd -1q -tf "dolibarr-" /var/www
|
|
}
|
|
|
|
function install() {
|
|
echo "recipe:dolibarr installing..."
|
|
lxc exec "$CONTAINER" -- bash <<EOF
|
|
cloud-init status --wait >/dev/null
|
|
apt update
|
|
apt install -y $MANDATORY_PACKAGES_STRING
|
|
cd /var/www
|
|
PATH="\$PATH:/opt/debian-bash/tools"
|
|
VERSION="\$(wget_semver github Dolibarr/dolibarr)"
|
|
if [[ ! -f "dolibarr-\$VERSION.tgz" ]]; then
|
|
wget_release github Dolibarr/dolibarr
|
|
else
|
|
echo "dolibarr version=\$VERSION already downloaded!"
|
|
fi
|
|
EOF
|
|
}
|
|
|
|
. "$MIAOU_BASEDIR/lib/init.sh"
|
|
|
|
arg1_required "$@"
|
|
readonly CONTAINER="$1"
|
|
launch_container "$CONTAINER"
|
|
|
|
check || (
|
|
install
|
|
check
|
|
)
|