root / snf-image-helper / tasks / 50EnforcePersonality.in @ c03b6c45
History | View | Annotate | Download (1.4 kB)
1 | 22a2e378 | Nikos Skalkotos | #! /bin/bash |
---|---|---|---|
2 | 22a2e378 | Nikos Skalkotos | |
3 | 22a2e378 | Nikos Skalkotos | ### BEGIN TASK INFO |
4 | 22a2e378 | Nikos Skalkotos | # Provides: EnforcePersonality |
5 | 22a2e378 | Nikos Skalkotos | # RunBefore: UmountImage |
6 | 22a2e378 | Nikos Skalkotos | # RunAfter: DeleteSSHKeys |
7 | 22a2e378 | Nikos Skalkotos | # Short-Description: Inject files to the instance |
8 | 22a2e378 | Nikos Skalkotos | ### END TASK INFO |
9 | 22a2e378 | Nikos Skalkotos | |
10 | 22a2e378 | Nikos Skalkotos | set -e |
11 | 22a2e378 | Nikos Skalkotos | set -o pipefail |
12 | 22a2e378 | Nikos Skalkotos | |
13 | 22a2e378 | Nikos Skalkotos | . "@commondir@/common.sh" |
14 | 22a2e378 | Nikos Skalkotos | |
15 | 22a2e378 | Nikos Skalkotos | if [ ! -d "$SNF_IMAGE_TARGET" ]; then |
16 | 22a2e378 | Nikos Skalkotos | log_error "Target dir: \`$SNF_IMAGE_TARGET' is missing" |
17 | 22a2e378 | Nikos Skalkotos | fi |
18 | 22a2e378 | Nikos Skalkotos | |
19 | c03b6c45 | Nikos Skalkotos | if [ -z "$SNF_IMAGE_PERSONALITY" ]; then |
20 | c03b6c45 | Nikos Skalkotos | warn "This image has no personality (0 files to inject)" |
21 | c03b6c45 | Nikos Skalkotos | fi |
22 | c03b6c45 | Nikos Skalkotos | |
23 | c03b6c45 | Nikos Skalkotos | if [ "$SNF_IMAGE_PROPERTY_OSFAMILY" = "windows" ]; then |
24 | 22a2e378 | Nikos Skalkotos | echo "$SNF_IMAGE_PERSONALITY" | |
25 | 22a2e378 | Nikos Skalkotos | @scriptsdir@/inject-files.py "$SNF_IMAGE_TARGET" |
26 | c03b6c45 | Nikos Skalkotos | exit 0 |
27 | c03b6c45 | Nikos Skalkotos | elif [ "$SNF_IMAGE_PROPERTY_OSFAMILY" = "linux" ]; then |
28 | c03b6c45 | Nikos Skalkotos | tmpdir=$(chroot "$SNF_IMAGE_TARGET" mktemp -d) |
29 | c03b6c45 | Nikos Skalkotos | add_cleanup rm -rf "$SNF_IMAGE_TARGET/$tmpdir" |
30 | c03b6c45 | Nikos Skalkotos | echo "$SNF_IMAGE_PERSONALITY" | |
31 | c03b6c45 | Nikos Skalkotos | @scriptsdir@/inject-files.py -d "$SNF_IMAGE_TARGET/$tmpdir" |
32 | c03b6c45 | Nikos Skalkotos | { |
33 | c03b6c45 | Nikos Skalkotos | while read -d $'\0' src; do |
34 | c03b6c45 | Nikos Skalkotos | read -d $'\0' owner; |
35 | c03b6c45 | Nikos Skalkotos | read -d $'\0' group; |
36 | c03b6c45 | Nikos Skalkotos | read -d $'\0' mode; |
37 | c03b6c45 | Nikos Skalkotos | read -d $'\0' dest; |
38 | c03b6c45 | Nikos Skalkotos | chroot "$SNF_IMAGE_TARGET" chown "$owner:$group" "$tmpdir/$src" |
39 | c03b6c45 | Nikos Skalkotos | chroot "$SNF_IMAGE_TARGET" su -l "$owner" -c \ |
40 | c03b6c45 | Nikos Skalkotos | "umask 0007; install -D -m $mode $(printf "%q" "$tmpdir")/$src \ |
41 | c03b6c45 | Nikos Skalkotos | $(printf "%q" "$dest")" |
42 | c03b6c45 | Nikos Skalkotos | done |
43 | c03b6c45 | Nikos Skalkotos | } < "$SNF_IMAGE_TARGET/$tmpdir/manifest" |
44 | 22a2e378 | Nikos Skalkotos | fi |
45 | 22a2e378 | Nikos Skalkotos | |
46 | 22a2e378 | Nikos Skalkotos | exit 0 |
47 | 22a2e378 | Nikos Skalkotos | |
48 | 22a2e378 | Nikos Skalkotos | # vim: set sta sts=4 shiftwidth=4 sw=4 et ai : |