root / snf-image-helper / tasks / 50EnforcePersonality.in @ 10bf026d
History | View | Annotate | Download (2.2 kB)
1 | 22a2e378 | Nikos Skalkotos | #! /bin/bash |
---|---|---|---|
2 | 22a2e378 | Nikos Skalkotos | |
3 | 7e5d635b | Nikos Skalkotos | # Copyright (C) 2011 GRNET S.A. |
4 | 7e5d635b | Nikos Skalkotos | # |
5 | 7e5d635b | Nikos Skalkotos | # This program is free software; you can redistribute it and/or modify |
6 | 7e5d635b | Nikos Skalkotos | # it under the terms of the GNU General Public License as published by |
7 | 7e5d635b | Nikos Skalkotos | # the Free Software Foundation; either version 2 of the License, or |
8 | 7e5d635b | Nikos Skalkotos | # (at your option) any later version. |
9 | 7e5d635b | Nikos Skalkotos | # |
10 | 7e5d635b | Nikos Skalkotos | # This program is distributed in the hope that it will be useful, but |
11 | 7e5d635b | Nikos Skalkotos | # WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | 7e5d635b | Nikos Skalkotos | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 | 7e5d635b | Nikos Skalkotos | # General Public License for more details. |
14 | 7e5d635b | Nikos Skalkotos | # |
15 | 7e5d635b | Nikos Skalkotos | # You should have received a copy of the GNU General Public License |
16 | 7e5d635b | Nikos Skalkotos | # along with this program; if not, write to the Free Software |
17 | 7e5d635b | Nikos Skalkotos | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
18 | 7e5d635b | Nikos Skalkotos | # 02110-1301, USA. |
19 | 7e5d635b | Nikos Skalkotos | |
20 | 22a2e378 | Nikos Skalkotos | ### BEGIN TASK INFO |
21 | 22a2e378 | Nikos Skalkotos | # Provides: EnforcePersonality |
22 | 22a2e378 | Nikos Skalkotos | # RunBefore: UmountImage |
23 | 22a2e378 | Nikos Skalkotos | # RunAfter: DeleteSSHKeys |
24 | 22a2e378 | Nikos Skalkotos | # Short-Description: Inject files to the instance |
25 | 22a2e378 | Nikos Skalkotos | ### END TASK INFO |
26 | 22a2e378 | Nikos Skalkotos | |
27 | 22a2e378 | Nikos Skalkotos | set -e |
28 | 22a2e378 | Nikos Skalkotos | |
29 | 22a2e378 | Nikos Skalkotos | . "@commondir@/common.sh" |
30 | 22a2e378 | Nikos Skalkotos | |
31 | 2a0c492d | Nikos Skalkotos | # Check if the task should be prevented from running. |
32 | 2a0c492d | Nikos Skalkotos | check_if_excluded |
33 | 2a0c492d | Nikos Skalkotos | |
34 | 22a2e378 | Nikos Skalkotos | if [ ! -d "$SNF_IMAGE_TARGET" ]; then |
35 | 22a2e378 | Nikos Skalkotos | log_error "Target dir: \`$SNF_IMAGE_TARGET' is missing" |
36 | 22a2e378 | Nikos Skalkotos | fi |
37 | 22a2e378 | Nikos Skalkotos | |
38 | c03b6c45 | Nikos Skalkotos | if [ -z "$SNF_IMAGE_PERSONALITY" ]; then |
39 | c03b6c45 | Nikos Skalkotos | warn "This image has no personality (0 files to inject)" |
40 | cc6e7859 | Nikos Skalkotos | exit 0 |
41 | c03b6c45 | Nikos Skalkotos | fi |
42 | c03b6c45 | Nikos Skalkotos | |
43 | c03b6c45 | Nikos Skalkotos | if [ "$SNF_IMAGE_PROPERTY_OSFAMILY" = "windows" ]; then |
44 | 22a2e378 | Nikos Skalkotos | echo "$SNF_IMAGE_PERSONALITY" | |
45 | 22a2e378 | Nikos Skalkotos | @scriptsdir@/inject-files.py "$SNF_IMAGE_TARGET" |
46 | c03b6c45 | Nikos Skalkotos | exit 0 |
47 | c03b6c45 | Nikos Skalkotos | elif [ "$SNF_IMAGE_PROPERTY_OSFAMILY" = "linux" ]; then |
48 | c03b6c45 | Nikos Skalkotos | tmpdir=$(chroot "$SNF_IMAGE_TARGET" mktemp -d) |
49 | c03b6c45 | Nikos Skalkotos | add_cleanup rm -rf "$SNF_IMAGE_TARGET/$tmpdir" |
50 | c03b6c45 | Nikos Skalkotos | echo "$SNF_IMAGE_PERSONALITY" | |
51 | c03b6c45 | Nikos Skalkotos | @scriptsdir@/inject-files.py -d "$SNF_IMAGE_TARGET/$tmpdir" |
52 | 6d789991 | Nikos Skalkotos | chroot "$SNF_IMAGE_TARGET" chmod 777 "$tmpdir" |
53 | c03b6c45 | Nikos Skalkotos | { |
54 | c03b6c45 | Nikos Skalkotos | while read -d $'\0' src; do |
55 | c03b6c45 | Nikos Skalkotos | read -d $'\0' owner; |
56 | c03b6c45 | Nikos Skalkotos | read -d $'\0' group; |
57 | c03b6c45 | Nikos Skalkotos | read -d $'\0' mode; |
58 | c03b6c45 | Nikos Skalkotos | read -d $'\0' dest; |
59 | c03b6c45 | Nikos Skalkotos | chroot "$SNF_IMAGE_TARGET" chown "$owner:$group" "$tmpdir/$src" |
60 | c03b6c45 | Nikos Skalkotos | chroot "$SNF_IMAGE_TARGET" su -l "$owner" -c \ |
61 | 6d789991 | Nikos Skalkotos | "install -D -m $mode $(printf "%q" "$tmpdir")/$src \ |
62 | c03b6c45 | Nikos Skalkotos | $(printf "%q" "$dest")" |
63 | c03b6c45 | Nikos Skalkotos | done |
64 | c03b6c45 | Nikos Skalkotos | } < "$SNF_IMAGE_TARGET/$tmpdir/manifest" |
65 | 22a2e378 | Nikos Skalkotos | fi |
66 | 22a2e378 | Nikos Skalkotos | |
67 | 22a2e378 | Nikos Skalkotos | exit 0 |
68 | 22a2e378 | Nikos Skalkotos | |
69 | 22a2e378 | Nikos Skalkotos | # vim: set sta sts=4 shiftwidth=4 sw=4 et ai : |