Another refactor
This commit is contained in:
parent
9c0cb8c32f
commit
a767208c33
14 changed files with 116 additions and 149 deletions
|
@ -1,7 +1,7 @@
|
|||
#!/bin/bash
|
||||
if [ ! "$1" == "" ];
|
||||
then
|
||||
source /tmp/dist/$1
|
||||
source /tmp/src/$1
|
||||
shift
|
||||
FUNC=$1
|
||||
shift
|
||||
|
|
185
lib/function.sh
185
lib/function.sh
|
@ -1,12 +1,82 @@
|
|||
#!/bin/bash
|
||||
DEBOOTSTRAP_DIR=cache/debootstrap/
|
||||
source ressources/${APP}/${APP}
|
||||
CACHE_APP=cache/${APP}/
|
||||
MOUNT_APP=/mnt/debmaker/${APP}/
|
||||
DEBOOTSTRAP_DIR=cache/debootstrap/
|
||||
MOUNT_PATH=/mnt/debmaker
|
||||
|
||||
[ -d ${CACHE_APP} ] || mkdir -p ${CACHE_APP}
|
||||
zdebmaker_getDep(){
|
||||
[ -d ${DEBOOTSTRAP_DIR} ] || debmaker_debootstrapUpdate
|
||||
}
|
||||
|
||||
########################## SUB FUNCTION ##########################
|
||||
zdebmaker_createOS(){
|
||||
dd if=/dev/zero of=cache/${DEBIAN_VERSION_CODENAME}.tmp bs=100M count=5
|
||||
sudo mkfs.ext4 cache/${DEBIAN_VERSION_CODENAME}.tmp
|
||||
sudo mount cache/${DEBIAN_VERSION_CODENAME}.tmp ${MOUNT_PATH}/${DEBIAN_VERSION_CODENAME}
|
||||
sudo DEBOOTSTRAP_DIR=cache/debootstrap/ ${DEBOOTSTRAP_DIR}/debootstrap ${DEBIAN_VERSION_CODENAME} ${MOUNT_PATH}/${DEBIAN_VERSION_CODENAME}/
|
||||
sudo umount ${MOUNT_PATH}/${DEBIAN_VERSION_CODENAME}
|
||||
mv cache/${DEBIAN_VERSION_CODENAME}.tmp cache/${DEBIAN_VERSION_CODENAME}
|
||||
}
|
||||
|
||||
zdebmaker_createAppOS(){
|
||||
[ -f cache/${DEBIAN_VERSION_CODENAME} ] || zdebmaker_createOS
|
||||
|
||||
[ "${IMAGE_SIZE}" == "" ] && IMAGE_SIZE=2
|
||||
dd if=/dev/zero of=cache/${APP}.tmp bs=1G count=${IMAGE_SIZE}
|
||||
sudo mkfs.ext4 cache/${APP}.tmp
|
||||
|
||||
sudo mount cache/${APP}.tmp ${MOUNT_PATH}/${APP}/
|
||||
sudo mount cache/${DEBIAN_VERSION_CODENAME} ${MOUNT_PATH}/${DEBIAN_VERSION_CODENAME}
|
||||
sudo rsync -h -X -A --numeric-ids -aH --no-whole-file --inplace --one-file-system ${MOUNT_PATH}/${DEBIAN_VERSION_CODENAME}/* ${MOUNT_PATH}/${APP}/
|
||||
sudo umount ${MOUNT_PATH}/${DEBIAN_VERSION_CODENAME}
|
||||
sudo umount ${MOUNT_PATH}/${APP}/
|
||||
mv cache/${APP}.tmp cache/${APP}
|
||||
}
|
||||
|
||||
zdebmaker_inject(){
|
||||
sudo mount cache/${APP} ${MOUNT_PATH}/${APP}/
|
||||
[ -d ${MOUNT_PATH}/${APP}/tmp/dist ] || sudo mkdir ${MOUNT_PATH}/${APP}/tmp/dist/
|
||||
[ -d ${MOUNT_PATH}/${APP}/tmp/src ] && sudo rm -rf ${MOUNT_PATH}/${APP}/tmp/src/
|
||||
sudo mkdir -p ${MOUNT_PATH}/${APP}/tmp/src
|
||||
sudo cp -fr ressources/${APP}/* ${MOUNT_PATH}/${APP}/tmp/src
|
||||
sudo cp -fr lib/exec_in_chroot.sh ${MOUNT_PATH}/${APP}/tmp/src
|
||||
sudo umount ${MOUNT_PATH}/${APP}/
|
||||
}
|
||||
|
||||
debmaker_mount_proc_sys(){
|
||||
OPEN_FILE=$1
|
||||
OPEN_DIR=$2
|
||||
[ -d ${OPEN_FILE} ] || sudo mkdir -p ${OPEN_DIR}
|
||||
sudo mount ${OPEN_FILE} ${OPEN_DIR}
|
||||
[ -d ${OPEN_DIR}/proc ] || sudo mkdir -p ${OPEN_DIR}/proc
|
||||
sudo mount -t proc proc ${OPEN_DIR}/proc
|
||||
[ -d ${OPEN_DIR}/sys ] || sudo mkdir -p ${OPEN_DIR}/sys
|
||||
sudo mount -t sysfs sys ${OPEN_DIR}/sys
|
||||
}
|
||||
|
||||
debmaker_umount_proc_sys(){
|
||||
OPEN_DIR=$1
|
||||
sudo umount ${OPEN_DIR}/sys
|
||||
sudo umount ${OPEN_DIR}/proc
|
||||
sudo umount ${OPEN_DIR}
|
||||
}
|
||||
|
||||
debmaker_chroot() {
|
||||
OPEN_FILE=$1
|
||||
debmaker_mount_proc_sys ${OPEN_FILE} ${MOUNT_PATH}/${APP}/
|
||||
sudo chroot ${MOUNT_PATH}/${APP}/
|
||||
debmaker_umount_proc_sys ${MOUNT_PATH}/${APP}/
|
||||
}
|
||||
|
||||
debmaker_run(){
|
||||
[ -f cache/${APP} ] || zdebmaker_createAppOS
|
||||
zdebmaker_inject
|
||||
debmaker_mount_proc_sys cache/${APP} ${MOUNT_PATH}/${APP}/
|
||||
for CURRENT_STEP in ${STEP}
|
||||
do
|
||||
sudo chroot ${MOUNT_PATH}/${APP}/ /tmp/src/exec_in_chroot.sh ${APP} ${CURRENT_STEP} ${GIT_VERSION} ${DEB_VERSION}
|
||||
done
|
||||
find ${MOUNT_PATH}/${APP}/tmp/dist/ -name *.deb -exec cp {} dist/ \;
|
||||
debmaker_umount_proc_sys ${MOUNT_PATH}/${APP}/
|
||||
}
|
||||
|
||||
debmaker_debootstrapUpdate(){
|
||||
[ -d ${DEBOOTSTRAP_DIR} ] || mkdir ${DEBOOTSTRAP_DIR}
|
||||
|
@ -15,110 +85,5 @@ debmaker_debootstrapUpdate(){
|
|||
wget -qO - ${URL} | tar -C ${DEBOOTSTRAP_DIR} --strip-components=1 -zx ${FILES}
|
||||
}
|
||||
|
||||
zdebmaker_getDep(){
|
||||
[ -d ${DEBOOTSTRAP_DIR} ] || debmaker_debootstrapUpdate
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
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 ##########################
|
||||
|
||||
debmaker_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
|
||||
}
|
||||
|
||||
debmaker_umountStep(){
|
||||
CURRENT_STEP=$1
|
||||
sudo umount ${MOUNT_APP}/${CURRENT_STEP}/sys
|
||||
sudo umount ${MOUNT_APP}/${CURRENT_STEP}/proc
|
||||
sudo umount ${MOUNT_APP}/${CURRENT_STEP}
|
||||
}
|
||||
|
||||
debmaker_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}
|
||||
}
|
||||
|
||||
########################## FUNCTION ##########################
|
||||
|
||||
debmaker_runStepOS() {
|
||||
CURRENT_STEP=os
|
||||
getSizeImage
|
||||
createImage
|
||||
debmake_mountStep ${CURRENT_STEP}
|
||||
sudo ${DEBOOTSTRAP_DIR}/debootstrap ${DEBIAN_VERSION_CODENAME} ${MOUNT_APP}/os/
|
||||
debmake_umountStep ${CURRENT_STEP}
|
||||
}
|
||||
|
||||
debmaker_runStepCustom() {
|
||||
CURRENT_STEP=$1
|
||||
valideStep ${CURRENT_STEP}
|
||||
PREVIOUS=$(previousStep ${CURRENT_STEP})
|
||||
echo -n copy $PREVIOUS in $CURRENT_STEP ...
|
||||
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}
|
||||
}
|
||||
|
||||
debmaker_runAllStep(){
|
||||
debmake_runStepOS
|
||||
for tmp in ${STEP}
|
||||
do
|
||||
debmake_runStepCustom $tmp
|
||||
done
|
||||
}
|
||||
|
||||
zdebmaker_getDep
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue