#!/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 rm /drone/src/wget.log wget -ci /drone/src/packages.list -o /drone/src/wget.log || ( echo "! cannot download all packages." ; exit 1 ) cp *.rpm /src/libreschool cd /src/libreschool if [ -r comps.xml ] ; then echo "+ Updating libreschool local repo (with groups)" createrepo -g comps.xml -dp . else echo "+ Updating libreschool local repo" createrepo -dp . fi 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"