Installation of default.script for udhcpc

The busybox template installs default.script in /usr/share/udhcpc/.
But the pathname of "default.script" may vary from one busybox
build to another. As the pathname is displayed in udhcpc's help,
grab it from it.

Signed-off-by: Rachid Koucha <rachid.koucha@gmail.com>
This commit is contained in:
Rachid Koucha 2019-01-27 03:38:36 +01:00 committed by GitHub
parent 3309e10c31
commit 1c9bca6b88
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -23,6 +23,8 @@
LXC_MAPPED_UID= LXC_MAPPED_UID=
LXC_MAPPED_GID= LXC_MAPPED_GID=
BUSYBOX_EXE=
# Make sure the usual locations are in PATH # Make sure the usual locations are in PATH
export PATH=$PATH:/usr/sbin:/usr/bin:/sbin:/bin export PATH=$PATH:/usr/sbin:/usr/bin:/sbin:/bin
@ -128,7 +130,13 @@ EOF
# writable and readable for other # writable and readable for other
chmod 644 "${rootfs}/etc/inittab" || return 1 chmod 644 "${rootfs}/etc/inittab" || return 1
cat <<EOF >> "${rootfs}/usr/share/udhcpc/default.script" # Look for the pathname of "default.script" from the help of udhcpc
DEF_SCRIPT=`${BUSYBOX_EXE} udhcpc -h 2>&1 | grep -- '-s,--script PROG' | cut -d'/' -f2- | cut -d')' -f1`
DEF_SCRIPT_DIR=`dirname /${DEF_SCRIPT}`
mkdir -p ${rootfs}/${DEF_SCRIPT_DIR}
chmod 644 ${rootfs}/${DEF_SCRIPT_DIR} || return 1
cat <<EOF >> ${rootfs}/${DEF_SCRIPT}
#!/bin/sh #!/bin/sh
case "\$1" in case "\$1" in
deconfig) deconfig)
@ -162,7 +170,7 @@ esac
exit 0 exit 0
EOF EOF
chmod 744 "${rootfs}/usr/share/udhcpc/default.script" chmod 744 ${rootfs}/${DEF_SCRIPT}
return "${res}" return "${res}"
} }
@ -297,6 +305,13 @@ if [ -z "${name}" ] || [ -z "${path}" ] || [ -z "${rootfs}" ]; then
exit 1 exit 1
fi fi
# Make sure busybox is present
BUSYBOX_EXE=`which busybox`
if [ $? -ne 0 ]; then
echo "ERROR: Failed to find busybox binary"
exit 1
fi
# detect rootfs # detect rootfs
config="$path/config" config="$path/config"
if [ -z "$rootfs" ]; then if [ -z "$rootfs" ]; then