summaryrefslogtreecommitdiffstats
path: root/scripts/plymouth-set-default-plugin
blob: a2ac8fd02023450b36685bab64a9e5067a28c0f2 (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
#!/bin/bash

set -e

[ -z "$LIBEXECDIR" ] && LIBEXECDIR="/usr/libexec"
[ -z "$DATADIR" ] && DATADIR="/usr/share"
[ -z "$LIB" ] && $(eu-readelf -h /usr/bin/plymouth | grep Class | grep -q ELF64) && LIB="lib64" || LIB="lib"
[ -z "$LIBDIR" ] && LIBDIR="/usr/$LIB"
[ -z "$BINDIR" ] && BINDIR="/usr/bin"

if [ $# -lt 1 ]; then
        PLUGIN_NAME=$(basename $(readlink ${LIBDIR}/plymouth/default.so) .so)
        if [ -z "$PLUGIN_NAME" ]; then
                $0 --reset
                PLUGIN_NAME=$(basename $(readlink ${LIBDIR}/plymouth/default.so) .so)
        fi
        [ -n "$PLUGIN_NAME" ] && echo $PLUGIN_NAME || exit 1
        exit $?
fi

if [ `id -u` -ne 0 ]; then
        echo "This program must be run as root" > /dev/stderr
        exit 1
fi

PLUGIN_NAME=$1
if [ $1 = '--reset' ]; then
        PLUGIN_NAME=$(basename $(ls -1 -t ${LIBDIR}/plymouth/*.so 2> /dev/null | grep -v default.so | tail -n 1) .so)
        if [ $PLUGIN_NAME = .so ]; then
                rm -f ${LIBDIR}/plymouth/default.so
                exit 0
        fi
fi

if [ ! -e ${LIBDIR}/plymouth/${PLUGIN_NAME}.so ]; then
        echo "${LIBDIR}/plymouth/${PLUGIN_NAME}.so does not exist" > /dev/stderr
        exit 1
fi

(cd ${LIBDIR}/plymouth; ln -sf ${PLUGIN_NAME}.so default.so)