3 # Copyright 2011 GRNET S.A. All rights reserved.
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions
9 # 1. Redistributions of source code must retain the above copyright
10 # notice, this list of conditions and the following disclaimer.
12 # 2. Redistributions in binary form must reproduce the above copyright
13 # notice, this list of conditions and the following disclaimer in the
14 # documentation and/or other materials provided with the distribution.
16 # THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 # ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 # The views and conclusions contained in the software and documentation are
29 # those of the authors and should not be interpreted as representing official
30 # policies, either expressed or implied, of GRNET S.A.
32 . @commondir@/common.sh
37 if [ "x$1" != "x--force" ]; then
38 echo "WARNING: Exiting, this command would cause the system to halt." >&2
39 echo "Use --force if you know what you're doing." >&2
43 # terminate helper vm when the script exits
46 if [ ! -b "$FLOPPY_DEV" ]; then
47 log_error "Floppy device is not present!"
50 floppy=$(mktemp -d --tmpdir floppy.XXXXXX)
51 add_cleanup rmdir "$floppy"
53 mount $FLOPPY_DEV $floppy
54 add_cleanup umount "$floppy"
56 if [ -f "$floppy/rules" ]; then
57 source "$floppy/rules"
59 log_error "Floppy does not contain \`rules\' file"
62 # Image mount point...
63 target=$(mktemp -d --tmpdir target.XXXXXX)
64 add_cleanup rmdir "$target"
66 export SNF_IMAGE_TARGET="$target"
68 if [ ! -d "@tasksdir@" ]; then
69 log_error "snf-image/tasks directory is missing"
72 RUN_PARTS=$(which run-parts)
73 if [ -z "$RUN_PARTS" ]; then
74 log_error "run-parts programe is missing from the system"
77 # If something goes wrong with the tasks, try to umount the target filesystem
78 # in case it is left mounted...
79 trap '{ umount "$target"; }' ERR
81 echo "Execute all snf-image tasks...."
82 $RUN_PARTS -v --exit-on-error "@tasksdir@"
84 # Disable the trap. If code reaches here, the filesystem is unmounted.
87 echo "SUCCESS" > "$RESULT"
95 # vim: set sta sts=4 shiftwidth=4 sw=4 et ai :