Files
zulip/tools/test-install/lxc-wait
Anders Kaseorg c4ed4bc021 test-install: Fix shellcheck warnings.
In tools/test-install/destroy-all line 31:
  | while read c
          ^-- SC2162: read without -r will mangle backslashes.

In tools/test-install/install line 57:
    installer_dir="$(readlink -f $INSTALLER)"
                                 ^-- SC2086: Double quote to prevent globbing and word splitting.

In tools/test-install/lxc-wait line 30:
for i in {1..60}; do
^-- SC2034: i appears unused. Verify use (or export if used externally).

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2018-08-03 09:15:27 -07:00

43 lines
898 B
Bash
Executable File

#!/bin/bash
set -e
usage() {
echo "usage: lxc-wait -n CONTAINER" >&2
exit 1
}
args="$(getopt -o +n: --long help,name: -- "$@")"
eval "set -- $args"
while true; do
case "$1" in
--help) usage;;
-n|--name) CONTAINER_NAME="$2"; shift; shift;;
--) shift; break;;
*) usage;;
esac
done
if [ -z "$CONTAINER_NAME" ] || [ "$#" -gt 0 ]; then
usage
fi
if [ "$EUID" -ne 0 ]; then
echo "error: this script must be run as root" >&2
exit 1
fi
# We poll.
for _ in {1..60}; do
echo "lxc-wait: $CONTAINER_NAME: polling for boot..." >&2
runlevel="$(lxc-attach -n "$CONTAINER_NAME" -- runlevel 2>/dev/null)" \
|| { sleep 1; continue; }
if [ "$runlevel" != "${0%[0-9]}" ]; then
echo "lxc-wait: $CONTAINER_NAME: booted!" >&2
exit 0
fi
sleep 1
done
echo "error: timeout waiting for container to boot" >&2
exit 1