496a43c777
- Validates an archive can be installed and removed - Builds an archives that uses postinst and prerm scripts Signed-off-by: Matthew Weber <matthew.weber@rockwellcollins.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
48 lines
1.4 KiB
Bash
Executable File
48 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
IPK_BUILD=${BUILD_DIR}/ipk-build
|
|
|
|
# Pull the files for the snmpd service out of the target to create a install archive
|
|
# and setup a basic configuration so that the startup script works.
|
|
mkdir -p ${IPK_BUILD}/CONTROL \
|
|
${IPK_BUILD}/etc/init.d/ \
|
|
${IPK_BUILD}/usr/sbin \
|
|
${IPK_BUILD}/etc/snmp \
|
|
${IPK_BUILD}/etc/default
|
|
mv -f ${TARGET_DIR}/etc/init.d/S59snmpd ${IPK_BUILD}/etc/init.d/
|
|
mv -f ${TARGET_DIR}/usr/sbin/snmpd ${IPK_BUILD}/usr/sbin/
|
|
echo "agentuser nobody" > ${IPK_BUILD}/etc/snmp/snmpd.conf
|
|
echo "SNMPDRUN=yes" > ${IPK_BUILD}/etc/default/snmpd
|
|
|
|
# build the control file
|
|
cat <<EOM >${IPK_BUILD}/CONTROL/control
|
|
Package: example-snmpd-package
|
|
Version: 1.0
|
|
Architecture: arm
|
|
Maintainer: user@domain.tld
|
|
Section: extras
|
|
Priority: optional
|
|
Source: http://example.com
|
|
Description: This is an example IPK package for installing snmpd
|
|
EOM
|
|
|
|
# preinst script is not created to run before the install for this test example
|
|
|
|
# postinst script is ran after install completes to start the services
|
|
cat <<EOM >${IPK_BUILD}/CONTROL/postinst
|
|
#!/bin/sh
|
|
/etc/init.d/S59snmpd start
|
|
EOM
|
|
chmod +x ${IPK_BUILD}/CONTROL/postinst
|
|
|
|
# prerm script is ran before removal so that the services isn't in use
|
|
cat <<EOM >${IPK_BUILD}/CONTROL/prerm
|
|
#!/bin/sh
|
|
/etc/init.d/S59snmpd stop
|
|
EOM
|
|
chmod +x ${IPK_BUILD}/CONTROL/prerm
|
|
|
|
# build the archive from template and pkg files
|
|
${HOST_DIR}/bin/opkg-build -Z gzip ${IPK_BUILD} ${TARGET_DIR}/root/
|
|
rm -fr ${IPK_BUILD}
|