From a12a27ef6503bd427634bf73cd1d1407560fe610 Mon Sep 17 00:00:00 2001 From: boyska Date: Tue, 9 Feb 2016 20:20:37 -0500 Subject: [PATCH] testmachine can be reused code slightly cleaned --- testingtoolchain/machinectl.sh | 98 ++++++++++++++++++++-------------- 1 file changed, 58 insertions(+), 40 deletions(-) diff --git a/testingtoolchain/machinectl.sh b/testingtoolchain/machinectl.sh index cc3eb55..0ba81b9 100755 --- a/testingtoolchain/machinectl.sh +++ b/testingtoolchain/machinectl.sh @@ -12,7 +12,16 @@ sourcemachine=jessie-amd64-base # questa macchina ha alcune cose di base installate/configurate # come Apache, PHP, eccetera intermediate=wwwd8-base -testmachine=wwwd8-test-$(date +%y%m%d%H%M%S) +if [[ $# -eq 0 ]]; then + testmachine=wwwd8-test-$(date +%y%m%d%H%M%S) +elif [[ $# -eq 1 ]]; then + testmachine=$1 + shift 1 +else + echo "Usage error" >&2 + exit 2 +fi + conf="$(dirname $0)/../config.sh" [[ -f "$conf" ]] && . "$conf" @@ -29,54 +38,63 @@ inm() { systemd-nspawn --setenv='DEBIAN_FRONTEND=noninteractive' -D "/var/lib/machines/${machine}" "$@" } -# intermediate creation END {{{1 -if ! machineexists "$intermediate"; then - if ! machineexists "$sourcemachine"; then - progress "Creating source machine" - debootstrap "/var/lib/machines/${sourcemachine}" - ok "Source machine created ($sourcemachine)" +sourcecreate() { + progress "Creating source machine" + debootstrap "/var/lib/machines/${sourcemachine}" + ok "Source machine created ($sourcemachine)" +} + +intermcreate() { + if ! machineexists "$intermediate"; then + if ! machineexists "$sourcemachine"; then + sourcecreate + fi + machinectl clone "${sourcemachine}" "${intermediate}" fi - machinectl clone "${sourcemachine}" "${intermediate}" -fi -progress "Setting up intermediate machine $intermediate" -cat < /var/lib/machines/${intermediate}/etc/gitconfig + progress "Setting up intermediate machine $intermediate" + cat < /var/lib/machines/${intermediate}/etc/gitconfig [transfer] - fsckobjects = true +fsckobjects = true [fetch] - fsckobjects = true +fsckobjects = true [receive] - fsckObjects = true +fsckObjects = true EOF -cat < /var/lib/machines/${intermediate}/etc/apt/apt.conf.d/default.conf + cat < /var/lib/machines/${intermediate}/etc/apt/apt.conf.d/default.conf APT::Default-Release "jessie"; EOF -if [[ ! -f /var/lib/machines/${intermediate}/etc/apt/sources.list.d/stretch.list ]]; then - cat < /var/lib/machines/${intermediate}/etc/apt/sources.list.d/stretch.list - deb http://ftp.debian.org/debian stretch main + if [[ ! -f /var/lib/machines/${intermediate}/etc/apt/sources.list.d/stretch.list ]]; then + cat < /var/lib/machines/${intermediate}/etc/apt/sources.list.d/stretch.list +deb http://ftp.debian.org/debian stretch main EOF - inm $intermediate apt-get update -fi -# those are idempotent, so... -inm $intermediate /usr/bin/apt-get -y install apache2 libapache2-mod-php5 php5-gd mariadb-server git -inm $intermediate /usr/bin/apt-get -y install -t stretch composer -inm $intermediate /usr/sbin/a2enmod rewrite -inm $intermediate /usr/sbin/a2enmod php5 -inm $intermediate /bin/mkdir -p /mig -progress "Installation of Drush" -inm $intermediate /usr/bin/composer global require drush/drush:8.0.3 -if ! inm $intermediate /usr/bin/test -x /root/.composer/vendor/bin/drush; then - error Cannot install drush - exit 1 -else - ln -sf /root/.composer/vendor/bin/drush /usr/bin/drush - ok "Drush installed" -fi -ok "Intermediate machine $intermediate set up" -# intermediate creation END }}}1 + inm $intermediate apt-get update + fi + # those are idempotent, so... + inm $intermediate /usr/bin/apt-get -y install apache2 libapache2-mod-php5 php5-gd mariadb-server git + inm $intermediate /usr/bin/apt-get -y install -t stretch composer + inm $intermediate /usr/sbin/a2enmod rewrite + inm $intermediate /usr/sbin/a2enmod php5 + inm $intermediate /bin/mkdir -p /mig + progress "Installation of Drush" + inm $intermediate /usr/bin/composer global require drush/drush:8.0.3 + if ! inm $intermediate /usr/bin/test -x /root/.composer/vendor/bin/drush; then + error Cannot install drush + exit 1 + else + inm ${intermediate} /bin/ln -sf /root/.composer/vendor/bin/drush /usr/bin/drush + ok "Drush installed" + fi + ok "Intermediate machine $intermediate set up" +} -machinectl clone "${intermediate}" "${testmachine}" +testcreate() { + if ! machineexists "${testmachine}"; then + intermcreate + machinectl clone "${intermediate}" "${testmachine}" + fi +} + +testcreate progress "deploying on ${testmachine}" systemd-nspawn -D "/var/lib/machines/${testmachine}" --bind-ro="$(readlink -f $(dirname $0)/../):/mig" /mig/deploy/deploy.sh ok "all done" - -# vim: set fdm=marker: