New process using mount point
This commit is contained in:
parent
637a60c3bf
commit
5d14cf2985
18 changed files with 217 additions and 244 deletions
9
lib/exec_in_chroot.sh
Executable file
9
lib/exec_in_chroot.sh
Executable file
|
@ -0,0 +1,9 @@
|
|||
#!/bin/bash
|
||||
if [ ! "$1" == "" ];
|
||||
then
|
||||
source /tmp/dist/$1
|
||||
shift
|
||||
FUNC=$1
|
||||
shift
|
||||
${FUNC} $*
|
||||
fi
|
195
lib/function.sh
195
lib/function.sh
|
@ -1,133 +1,108 @@
|
|||
#!/bin/bash
|
||||
source ressources/${APP}/${APP}
|
||||
CACHE_APP=cache/${APP}/
|
||||
CACHE_STEP1=cache/${DEBIAN_VERSION_CODENAME}
|
||||
CACHE_STEP2=cache/${APP}/envinit
|
||||
CACHE_STEP3=cache/${APP}/prebuild
|
||||
CACHE_STEP4=cache/${APP}/build
|
||||
MOUNT_APP=/mnt/debmaker/${APP}/
|
||||
|
||||
#DownloadOs
|
||||
step1() {
|
||||
if [ ! -e ${CACHE_STEP1} ]
|
||||
then
|
||||
mkdir -p ${CACHE_STEP1}/proc
|
||||
mount -t proc proc ${CACHE_STEP1}/proc
|
||||
sleep 2
|
||||
debootstrap ${DEBIAN_VERSION_CODENAME} ${CACHE_STEP1}
|
||||
umount ${CACHE_STEP1}/proc
|
||||
[ -d ${CACHE_APP} ] || mkdir -p ${CACHE_APP}
|
||||
|
||||
########################## SUB FUNCTION ##########################
|
||||
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
|
||||
fi
|
||||
}
|
||||
|
||||
#InstallOs
|
||||
step2(){
|
||||
if [ ! -e ${CACHE_STEP2} ] ; then
|
||||
mkdir -p ${CACHE_APP}
|
||||
cp -a ${CACHE_STEP1}/ ${CACHE_STEP2}
|
||||
cp ressources/${APP}/${APP} ${CACHE_STEP2}/tmp/make
|
||||
mount -t proc proc ${CACHE_STEP2}/proc
|
||||
sleep 2
|
||||
chroot ${CACHE_STEP2} /tmp/make envinit
|
||||
umount ${CACHE_STEP2}/proc
|
||||
rm ${CACHE_STEP2}/tmp/${APP}
|
||||
fi
|
||||
getSizeImage(){
|
||||
[ "${IMAGE_SIZE}" == "" ] && IMAGE_SIZE=2
|
||||
}
|
||||
|
||||
#ConfigureBeforeBuild
|
||||
step3(){
|
||||
if [ ! -e ${CACHE_STEP3} ]; then
|
||||
cp -a ${CACHE_STEP2} ${CACHE_STEP3}
|
||||
cp ressources/${APP}/${APP} ${CACHE_STEP3}/tmp/make
|
||||
chroot ${CACHE_STEP3} /tmp/make prebuild ${GIT_VERSION}
|
||||
rm ${CACHE_STEP3}/tmp/make
|
||||
fi
|
||||
createImage(){
|
||||
dd if=/dev/zero of=${CACHE_APP}/os bs=1G count=${IMAGE_SIZE}
|
||||
sudo mkfs.ext4 ${CACHE_APP}/os
|
||||
}
|
||||
|
||||
#Build
|
||||
step4(){
|
||||
if [ ! -e ${CACHE_STEP4} ] ; then
|
||||
cp -a ${CACHE_STEP3} ${CACHE_STEP4}
|
||||
cp ressources/${APP}/${APP} ${CACHE_STEP4}/tmp/make
|
||||
mount -t proc proc ${CACHE_STEP4}/proc/
|
||||
sleep 2
|
||||
chroot ${CACHE_STEP4} /tmp/make build
|
||||
umount ${CACHE_STEP4}/proc/
|
||||
rm ${CACHE_STEP4}/tmp/make
|
||||
fi
|
||||
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
|
||||
}
|
||||
|
||||
#PackageDeb
|
||||
step5(){
|
||||
rm -fr dist/${APP}
|
||||
mkdir dist/${APP}
|
||||
cp -pfr ressources/${APP}/rootfs/* dist/$APP/
|
||||
bash ressources/${APP}/${APP} makedeb ${CACHE_STEP4} dist/${APP} ${GIT_VERSION}
|
||||
sed -i "s/%VERSION%/$DEB_VERSION/" dist/${APP}/DEBIAN/control
|
||||
fakeroot dpkg-deb -Z gzip --build dist/${APP} dist
|
||||
rm -fr dist/${APP}
|
||||
########################## FUNCTION ##########################
|
||||
|
||||
debmake_mountStep(){
|
||||
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
|
||||
}
|
||||
|
||||
allstep(){
|
||||
step1
|
||||
step2
|
||||
step3
|
||||
step4
|
||||
step5
|
||||
debmake_umountStep(){
|
||||
CURRENT_STEP=$1
|
||||
sudo umount ${MOUNT_APP}/${CURRENT_STEP}/sys
|
||||
sudo umount ${MOUNT_APP}/${CURRENT_STEP}/proc
|
||||
sudo umount ${MOUNT_APP}/${CURRENT_STEP}
|
||||
}
|
||||
|
||||
DeleteStep1(){
|
||||
rm -fr ${CACHE_STEP1} ${CACHE_STEP2} ${CACHE_STEP3} ${CACHE_STEP4}
|
||||
}
|
||||
DeleteStep2(){
|
||||
rm -fr ${CACHE_STEP2} ${CACHE_STEP3} ${CACHE_STEP4}
|
||||
}
|
||||
DeleteStep3(){
|
||||
rm -fr ${CACHE_STEP3} ${CACHE_STEP4}
|
||||
}
|
||||
DeleteStep4(){
|
||||
rm -fr ${CACHE_STEP4}
|
||||
debmake_chrootStep(){
|
||||
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}
|
||||
}
|
||||
|
||||
StartFromStep1(){
|
||||
DeleteStep1
|
||||
allstep
|
||||
########################## FUNCTION ##########################
|
||||
|
||||
debmake_runStepOS() {
|
||||
CURRENT_STEP=os
|
||||
getSizeImage
|
||||
createImage
|
||||
debmake_mountStep ${CURRENT_STEP}
|
||||
sudo debootstrap ${DEBIAN_VERSION_CODENAME} ${MOUNT_APP}/os/
|
||||
debmake_umountStep ${CURRENT_STEP}
|
||||
}
|
||||
|
||||
StartFromStep2(){
|
||||
DeleteStep2
|
||||
allstep
|
||||
debmake_runStepCustom() {
|
||||
CURRENT_STEP=$1
|
||||
valideStep ${CURRENT_STEP}
|
||||
PREVIOUS=$(previousStep ${CURRENT_STEP})
|
||||
echo -n copy PREVIOUS in $PREVIOUS ...
|
||||
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}
|
||||
}
|
||||
|
||||
StartFromStep3(){
|
||||
DeleteStep3
|
||||
allstep
|
||||
}
|
||||
|
||||
StartFromStep4(){
|
||||
DeleteStep4
|
||||
allstep
|
||||
}
|
||||
|
||||
GotoStep1(){
|
||||
chroot ${CACHE_STEP1}
|
||||
}
|
||||
|
||||
GotoStep2(){
|
||||
chroot ${CACHE_STEP2}
|
||||
}
|
||||
|
||||
GotoStep3(){
|
||||
chroot ${CACHE_STEP3}
|
||||
}
|
||||
|
||||
GotoStep4(){
|
||||
mount -t proc proc ${CACHE_STEP4}/proc/
|
||||
chroot ${CACHE_STEP4}
|
||||
umount ${CACHE_STEP4}/proc/
|
||||
}
|
||||
|
||||
Clean(){
|
||||
rm -fr cache/*
|
||||
}
|
||||
|
||||
CleanAll(){
|
||||
rm -fr cache/*
|
||||
debmake_runAllStep(){
|
||||
debmake_runStepOS
|
||||
for tmp in ${STEP}
|
||||
do
|
||||
debmake_runStepCustom $tmp
|
||||
done
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue