Paolo Asperti 7b304f2b6b
All checks were successful
continuous-integration/drone/tag Build is passing
continuous-integration/drone/push Build is passing
added support for package cache
2019-04-27 22:03:04 +02:00

60 lines
1.7 KiB
Bash

#!/bin/bash
set -e
PLUGIN_SOURCE_ISO_URL=${PLUGIN_SOURCE_ISO_URL:-"http://downloads.sourceforge.net/project/nethserver/nethserver-7.6.1810-x86_64.iso"}
PLUGIN_OUTPUT_ISO=${PLUGIN_OUTPUT_ISO:-"output.iso"}
echo "+ PWD: $PWD"
if [ ! -r /source.iso ] ; then
# download only if source iso is not already present
echo "+ Downloading URL: $PLUGIN_SOURCE_ISO_URL"
wget -qO/source.iso "$PLUGIN_SOURCE_ISO_URL" || exit 1
fi
mkdir /src
echo "+ Extracting source ISO"
7z x -o/src -bd /source.iso || exit 1
echo "+ Removing all TRANS.TBL files"
find /src -name TRANS.TBL -delete
echo "+ Adding custom files from 'root'"
cp -vr /drone/src/root/* /src/
echo "+ Adding GPG signing key"
curl -s "http://repo.libreschool.org/nethserver/RPM-GPG-KEY-LibreSchool" > /src/RPM-GPG-KEY-LibreSchool
echo "+ Adding custom packages"
if [ ! -r /drone/src/packages.list ] ; then
echo "! missing packages.list"
exit 1
fi
mkdir -p /src/libreschool /drone/src/package_cache
cd /drone/src/package_cache
wget -cqi /drone/src/packages.list || ( echo "! cannot download all packages" ; exit 1 )
cp *.rpm /src/libreschool
cd /src/libreschool
echo "+ Updating libreschool local repo"
createrepo -dp .
if [ -d /drone/src/anaconda ] ; then
echo "+ Generating anaconda customization package"
cd /drone/src/anaconda/
find . | cpio -c -o | gzip -9cv > /src/images/product.img
fi
echo "+ Generating new ISO"
cd /src && \
genisoimage -o /output.iso -b isolinux/isolinux.bin -c isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \
-V "nethserver" -R -J -quiet -T . && \
isohybrid /output.iso && \
implantisomd5 /output.iso
echo "+ Renaming file"
mv /output.iso "/drone/src/$PLUGIN_OUTPUT_ISO"
echo "+ Done"