debmaker/lib/function.sh

125 lines
3.2 KiB
Bash
Raw Normal View History

2022-01-23 21:49:01 +01:00
#!/bin/bash
2022-02-23 21:25:03 +01:00
DEBOOTSTRAP_DIR=cache/debootstrap/
2022-02-20 15:02:18 +01:00
source ressources/${APP}/${APP}
2022-01-23 21:49:01 +01:00
CACHE_APP=cache/${APP}/
2022-02-20 15:02:18 +01:00
MOUNT_APP=/mnt/debmaker/${APP}/
[ -d ${CACHE_APP} ] || mkdir -p ${CACHE_APP}
########################## SUB FUNCTION ##########################
2022-02-23 21:25:03 +01:00
debmaker_debootstrapUpdate(){
[ -d ${DEBOOTSTRAP_DIR} ] || mkdir ${DEBOOTSTRAP_DIR}
URL=https://salsa.debian.org/installer-team/debootstrap/-/archive/master/debootstrap-master.tar.gz
FILES="debootstrap-master/debootstrap debootstrap-master/scripts/ debootstrap-master/functions"
wget -qO - ${URL} | tar -C ${DEBOOTSTRAP_DIR} --strip-components=1 -zx ${FILES}
}
zdebmaker_getDep(){
[ -d ${DEBOOTSTRAP_DIR} ] || debmaker_debootstrapUpdate
}
2022-02-20 15:02:18 +01:00
valideStep(){
CURRENT_STEP=$1
RESULT=0
for tmp in ${STEP}
do
if [ $tmp == ${CURRENT_STEP} ] ; then
RESULT=1
break
fi
done
if [ $RESULT -eq 0 ]
then
echo invalid step
2022-01-23 21:49:01 +01:00
fi
}
2022-02-20 15:02:18 +01:00
getSizeImage(){
[ "${IMAGE_SIZE}" == "" ] && IMAGE_SIZE=2
}
createImage(){
dd if=/dev/zero of=${CACHE_APP}/os bs=1G count=${IMAGE_SIZE}
sudo mkfs.ext4 ${CACHE_APP}/os
}
previousStep(){
CURRENT_STEP=$1
TMP_STEP=os;
for tmp in ${STEP}
do
PREV=${TMP_STEP}
TMP_STEP=$tmp
if [ $tmp == $CURRENT_STEP ] ; then
break
fi
done
echo $PREV
}
########################## FUNCTION ##########################
2022-02-23 21:25:03 +01:00
debmaker_mountStep(){
2022-02-20 15:02:18 +01:00
CURRENT_STEP=$1
[ -d ${MOUNT_APP}/${CURRENT_STEP} ] || sudo mkdir -p ${MOUNT_APP}/${CURRENT_STEP}
sudo mount ${CACHE_APP}/${CURRENT_STEP} ${MOUNT_APP}/${CURRENT_STEP}
[ -d ${MOUNT_APP}/${CURRENT_STEP}/proc ] || sudo mkdir -p ${MOUNT_APP}/${CURRENT_STEP}/proc
sudo mount -t proc proc ${MOUNT_APP}/${CURRENT_STEP}/proc
[ -d ${MOUNT_APP}/${CURRENT_STEP}/sys ] || sudo mkdir -p ${MOUNT_APP}/${CURRENT_STEP}/sys
sudo mount -t sysfs sys ${MOUNT_APP}/${CURRENT_STEP}/sys
sleep 2
}
2022-02-23 21:25:03 +01:00
debmaker_umountStep(){
2022-02-20 15:02:18 +01:00
CURRENT_STEP=$1
sudo umount ${MOUNT_APP}/${CURRENT_STEP}/sys
sudo umount ${MOUNT_APP}/${CURRENT_STEP}/proc
sudo umount ${MOUNT_APP}/${CURRENT_STEP}
}
2022-02-23 21:25:03 +01:00
debmaker_chrootStep(){
2022-02-20 15:02:18 +01:00
CURRENT_STEP=$1
debmake_mountStep ${CURRENT_STEP}
[ -d ${MOUNT_APP}/${CURRENT_STEP}/tmp/dist/${APP} ] && sudo rm -rf ${MOUNT_APP}/${CURRENT_STEP}/tmp/dist/
sudo mkdir -p ${MOUNT_APP}/${CURRENT_STEP}/tmp/dist
sudo cp -fr ressources/${APP}/* ${MOUNT_APP}/${CURRENT_STEP}/tmp/dist
sudo cp -fr lib/exec_in_chroot.sh ${MOUNT_APP}/${CURRENT_STEP}/tmp/dist
shift
sudo chroot ${MOUNT_APP}${CURRENT_STEP}/ $*
find ${MOUNT_APP}${CURRENT_STEP}/tmp/dist/ -name *.deb -exec cp {} dist/ \;
debmake_umountStep ${CURRENT_STEP}
}
########################## FUNCTION ##########################
2022-02-23 21:25:03 +01:00
debmaker_runStepOS() {
2022-02-20 15:02:18 +01:00
CURRENT_STEP=os
getSizeImage
createImage
debmake_mountStep ${CURRENT_STEP}
2022-02-23 21:25:03 +01:00
sudo ${DEBOOTSTRAP_DIR}/debootstrap ${DEBIAN_VERSION_CODENAME} ${MOUNT_APP}/os/
2022-02-20 15:02:18 +01:00
debmake_umountStep ${CURRENT_STEP}
}
2022-02-23 21:25:03 +01:00
debmaker_runStepCustom() {
2022-02-20 15:02:18 +01:00
CURRENT_STEP=$1
valideStep ${CURRENT_STEP}
PREVIOUS=$(previousStep ${CURRENT_STEP})
2022-02-21 22:18:59 +01:00
echo -n copy $PREVIOUS in $CURRENT_STEP ...
2022-02-20 15:02:18 +01:00
cp ${CACHE_APP}/${PREVIOUS} ${CACHE_APP}/${CURRENT_STEP}
echo ": OK"
debmake_chrootStep $1 /tmp/dist/exec_in_chroot.sh ${APP} ${CURRENT_STEP} ${GIT_VERSION} ${DEB_VERSION}
}
2022-02-23 21:25:03 +01:00
debmaker_runAllStep(){
2022-02-20 15:02:18 +01:00
debmake_runStepOS
for tmp in ${STEP}
do
debmake_runStepCustom $tmp
done
2022-02-03 22:51:24 +01:00
}
2022-02-23 21:25:03 +01:00
zdebmaker_getDep