#!/bin/bash ##### ##### This file is part of Mail-in-a-Box-LDAP which is released under the ##### terms of the GNU Affero General Public License as published by the ##### Free Software Foundation, either version 3 of the License, or (at ##### your option) any later version. See file LICENSE or go to ##### https://github.com/downtownallday/mailinabox-ldap for full license ##### details. ##### # setup MiaB-LDAP by: # 1. installing a prior version of MiaB-LDAP # 2. adding some data (users/aliases/etc) # 3. upgrading to master branch version of MiaB-LDAP # # See setup-defaults.sh for usernames and passwords # usage() { echo "Usage: $(basename "$0")" echo "Install MiaB-LDAP after installing upstream MiaB" exit 1 } # ensure working directory if [ ! -d "tests/system-setup" ]; then echo "This script must be run from the MiaB root directory" exit 1 fi # load helper scripts . "tests/lib/all.sh" || die "Could not load lib scripts" . "tests/system-setup/setup-defaults.sh" || die "Could not load setup-defaults" . "tests/system-setup/setup-funcs.sh" || die "Could not load setup-funcs" # ensure running as root if [ "$EUID" != "0" ]; then die "This script must be run as root (sudo)" fi init() { H1 "INIT" init_test_system init_miab_testing "$@" || die "Initialization failed" } # install basic stuff, set the hostname, time, etc init "$@" # install tagged release release_dir="$HOME/miabldap_$MIABLDAP_RELEASE_TAG" miab_ldap_install \ "$@" \ --checkout-repo="$MIABLDAP_GIT" \ --checkout-treeish="$MIABLDAP_RELEASE_TAG" \ --checkout-targetdir="$release_dir" \ --capture-state="/tmp/state/release" pushd "$release_dir" >/dev/null say_release_info popd >/dev/null # install master miab-ldap and capture state H2 "New miabldap" miab_ldap_install --capture-state="/tmp/state/master" # compare states if ! installed_state_compare "/tmp/state/release" "/tmp/state/master"; then dump_file "/tmp/state/release/info.txt" dump_file "/tmp/state/master/info.txt" die "Release $RELEASE_TAG and master states are different !" fi # # actual verification that mail sends/receives properly is done via # the test runner ... #