summaryrefslogtreecommitdiffstats
path: root/meta-agl/recipes-devtools/run-agl-postinsts/run-agl-postinsts/run-agl-postinsts
blob: 1d1a5a0592aed1eb8e98543ddbef32cd0719aaa2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/bin/sh
#
# Copyright 2017 IoT.bzh.

# Author: Ronan Le Martret <ronan.lemartret@iot.bzh>
#

# The following script will run all the scriptlets found in #SYSCONFDIR#/agl-postinsts.

agl_pi_dir="#SYSCONFDIR#/agl-postinsts"

POSTINST_LOGGING=1
LOGFILE=/var/log/agl-postinstall.log

[ -e $LOGFILE ] && mv ${LOGFILE} ${LOGFILE}.old.$(date +%F--%H%M.%S)

append_log=">>$LOGFILE 2>&1"

exec_postinst_scriptlets() {
    for i in `ls $agl_pi_dir`; do
        i=$agl_pi_dir/$i
        echo "Running postinst $i..."
        [ "$POSTINST_LOGGING" = "1" ] && eval echo "Running postinst $i..." $append_log
        if [ -x $i ]; then
            eval sh -c $i $append_log
            if [ $? -eq 0 ]; then
                rm $i
            else
                echo "ERROR: postinst $i failed."
                [ "$POSTINST_LOGGING" = "1" ] && eval echo "ERROR: postinst $i failed." $append_log
                remove_agl_pi_dir=0
            fi
        else
            echo "ERROR: postinst $i do not exists or do not have execute permission."
            [ "$POSTINST_LOGGING" = "1" ] && eval echo "ERROR: postinst $i do not exists or do not have execute permission." $append_log
            remove_agl_pi_dir=0
        fi
    done
}

remove_agl_pi_dir=1
exec_postinst_scriptlets
systemctl daemon-reload

# since all postinstalls executed successfully, remove the postinstalls directory
if [ $remove_agl_pi_dir = 1 ]; then
    rm -rf $agl_pi_dir
fi