diff options
author | Martin Schwenke <martin@meltin.net> | 2014-06-27 11:45:49 +1000 |
---|---|---|
committer | Martin Schwenke <martin@meltin.net> | 2014-07-02 14:17:17 +1000 |
commit | ef72de0899d54d341ad8b9cb81e27ea27aa29bf8 (patch) | |
tree | fb7886b671a95a1ec390fa5c50ada15baacbddc8 | |
parent | 0aa1c68a8fe6116b2867dc26bbccbb90e8f1fabd (diff) | |
download | autocluster-ef72de0899d54d341ad8b9cb81e27ea27aa29bf8.tar.gz autocluster-ef72de0899d54d341ad8b9cb81e27ea27aa29bf8.tar.xz autocluster-ef72de0899d54d341ad8b9cb81e27ea27aa29bf8.zip |
Replace external waitfor script with a function
Signed-off-by: Martin Schwenke <martin@meltin.net>
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | README | 4 | ||||
-rwxr-xr-x | autocluster | 25 | ||||
-rw-r--r-- | autocluster.spec.in | 1 | ||||
-rwxr-xr-x | base/all/usr/bin/waitfor | 30 | ||||
-rwxr-xr-x | waitfor | 31 |
6 files changed, 28 insertions, 65 deletions
@@ -19,7 +19,7 @@ install: all mkdir -p $(DESTDIR)$(datadir) cp -a $(datas) $(DESTDIR)$(datadir)/ mkdir -p $(DESTDIR)$(bindir) - install -m 755 vircmd waitfor $(DESTDIR)$(bindir) + install -m 755 vircmd $(DESTDIR)$(bindir) install -m 755 autocluster.hack $(DESTDIR)$(bindir)/autocluster debian/changelog: debian/changelog.in Makefile .git/refs/heads/master @@ -59,8 +59,8 @@ clusters generated by autocluster. Autocluster creates virtual machines that use libvirt to run under KVM. This means that you will need to install both KVM and - libvirt on your host machine. Expect is used by the "waitfor" - script and should be available for installation form your + libvirt on your host machine. Expect is used by the waitfor() + function and should be available for installation from your distribution. For various distros: diff --git a/autocluster b/autocluster index f742848..3c8219f 100755 --- a/autocluster +++ b/autocluster @@ -96,6 +96,31 @@ announce () echo "" } +waitfor () +{ + local file="$1" + local msg="$2" + local timeout="$3" + + local tmpfile=$(mktemp) + + cat <<EOF >"$tmpfile" +spawn tail -n 10000 -f $file +expect -timeout $timeout -re "$msg" +EOF + + export LANG=C + expect "$tmpfile" + rm -f "$tmpfile" + + if ! grep -E "$msg" "$file" > /dev/null; then + echo "Failed to find \"$msg\" in \"$file\"" + return 1 + fi + + return 0 +} + ############################### # Indirectly call a function named by ${1}_${2} diff --git a/autocluster.spec.in b/autocluster.spec.in index 777792b..5ff3b0b 100644 --- a/autocluster.spec.in +++ b/autocluster.spec.in @@ -47,4 +47,3 @@ rm -rf $RPM_BUILD_ROOT %{_prefix}/share/autocluster/* %{_bindir}/autocluster %{_bindir}/vircmd -%{_bindir}/waitfor diff --git a/base/all/usr/bin/waitfor b/base/all/usr/bin/waitfor deleted file mode 100755 index cb296d3..0000000 --- a/base/all/usr/bin/waitfor +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash -# wait for a string to appear at the end of file -# tridge@samba.org July 2008 - -[ $# -lt 3 ] && { - cat <<EOF -Usage: waitfor FILE MESSAGE TIMEOUT -EOF -exit 1 -} - -file="$1" -msg="$2" -timeout="$3" - -tmpfile=`mktemp` - -cat <<EOF > $tmpfile -spawn tail -n 10000 -f $file -expect -timeout $timeout "$msg" -EOF - -expect $tmpfile -rm -f $tmpfile - -if ! grep "$msg" $file > /dev/null; then - echo "Failed to find \"$msg\" in $file" - exit 1 -fi -exit 0 diff --git a/waitfor b/waitfor deleted file mode 100755 index 7077c67..0000000 --- a/waitfor +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash -# wait for a string to appear at the end of file -# tridge@samba.org July 2008 - -[ $# -lt 3 ] && { - cat <<EOF -Usage: waitfor FILE MESSAGE TIMEOUT -EOF -exit 1 -} - -file="$1" -msg="$2" -timeout="$3" - -tmpfile=`mktemp` - -cat <<EOF > $tmpfile -spawn tail -n 10000 -f $file -expect -timeout $timeout -re "$msg" -EOF - -export LANG=C -expect $tmpfile -rm -f $tmpfile - -if ! grep -E "$msg" $file > /dev/null; then - echo "Failed to find \"$msg\" in $file" - exit 1 -fi -exit 0 |