summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xlibvasile98
-rwxr-xr-xmakeiso89
-rwxr-xr-xmakepkg36
-rwxr-xr-xvasile4
4 files changed, 100 insertions, 127 deletions
diff --git a/libvasile b/libvasile
index 3272852..5c2087e 100755
--- a/libvasile
+++ b/libvasile
@@ -97,6 +97,25 @@ chrootchecksum () {
# build functions
+chrootprepare () {
+ while : true ; do
+ if [[ ! -d "$rodir" && ! -d "$rwdir" && ! -d "$workdir" && ! -d "$overlaydir" ]] ; then
+ for i in "$rodir" "$rwdir" "$workdir" "$overlaydir" ; do
+ mkdir "$i"
+ done
+ chrootstart
+ break
+ elif [[ -d "$rodir" && -d "$rwdir" && -d "$workdir" && -d "$overlaydir" ]] ; then
+ chrootstop
+ for i in "$rodir" "$rwdir" "$workdir" "$overlaydir" ; do
+ rm -rf "$i"
+ done
+ continue
+ fi
+ done
+
+}
+
chrootstop () {
umount -l "$overlaydir"/proc > /dev/null 2>&1
umount -l "$overlaydir"/sys > /dev/null 2>&1
@@ -155,6 +174,17 @@ chrootx64 () {
chroot "$overlaydir" su - "$chrootuser"
}
+makepkg () {
+ chrootchecksum
+ chrootprepare
+ chrootoverlays
+ chrootbuildsystem
+ chrootdevtree
+ chrootbuild
+ chrootx64
+ chrootstop
+}
+
# iso functions
isostart () {
@@ -219,3 +249,71 @@ isochroot () {
einfo "EXIT WHEN YOU'RE DONE AND I'LL CREATE THE IMAGE"
chroot "$isosyncdir" su - "$isouser"
}
+
+prepareiso () {
+ mkdir -p "$isosyncdir"
+ dd if=/dev/zero of=""$isosyncdir".img" bs=50M count=400
+ mkfs.ext4 ""$isosyncdir".img"
+ mkdir -p "$isostagingdir"
+ mkdir -p "$isobootdir"
+ mkdir -p "$isoefibootdir"
+ mkdir -p "$isoliveosdir"
+ mkdir -p "$isosupersquashdir"
+ mkdir -p "$isolivesqfsdir"
+ mount -t squashfs "$chrootx64" "$isostagingdir"
+ mount -t ext4 ""$isosyncdir".img" "$isosyncdir"
+ rsync -aHAXr --progress "$isostagingdir/" "$isosyncdir/"
+ cp -avx ""$isosyncdir"/boot/"$isokernelname"" ""$isorootdir"/boot/vmlinuz"
+ isostart
+ isoramfs
+ isostop
+ mv ""$isosyncdir"/boot/"$isodracutrd"" ""$isorootdir"/boot/initrd"
+ isostart
+ isoefiimg
+ isostop
+ mv ""$isosyncdir"/root/bootx64.efi" "$isoefibootdir"
+ chmod 755 ""$isoefibootdir"/bootx64.efi"
+ isostart
+ isochainload
+ isostop
+ mv ""$isosyncdir"/root/core.img" "$isobootdir"
+ cp -avx ""$isosyncdir"/usr/lib64/grub/i386-pc/lnxboot.img" "$isobootdir"
+ isostart
+ isooverlays
+ isobuildsystem
+ isousertree
+ isochroot
+ isostop
+ isostart
+ isoservices
+ isostop
+ umount -l "$isosyncdir" > /dev/null 2>&1
+ mv ""$isosyncdir".img" "$isolivesqfsdir"
+ mksquashfs "$isosupersquashdir" ""$isorootdir"/squashfs.img" -b 1048576 -comp xz -Xdict-size 100%
+ mv ""$isorootdir/"squashfs.img" "$isoliveosdir"
+}
+
+bootcoreiso () {
+ git clone https://gitlab.com/"$releasename"/boot-core.git "$bootcorepath"
+ cp -avx "$bootcorefiles" "$isorootdir"
+}
+
+cleanupiso () {
+ umount "$isostagingdir"
+ rm -rf "$isosyncdir"
+ rm -rf "$isostagingdir"
+ rm -rf "$isosupersquashdir"
+ rm -rf "$bootcorepath"
+}
+
+makeisoimg () {
+ grub2-mkrescue -o ""$releasename"-"$releasetarget"-"$releaseversion"-"$isomainarch".iso" "$isorootdir"
+}
+
+makeiso () {
+ chrootchecksum
+ prepareiso
+ bootcoreiso
+ cleanupiso
+ makeisoimg
+}
diff --git a/makeiso b/makeiso
deleted file mode 100755
index e6ef8dc..0000000
--- a/makeiso
+++ /dev/null
@@ -1,89 +0,0 @@
-#!/usr/bin/env bash
-
-prepareiso () {
- # we really need this folder as quick as possible
- mkdir -p "$isosyncdir"
- # create an empty 20GB ext4 fs were our rootfs will stay
- dd if=/dev/zero of=""$isosyncdir".img" bs=50M count=400
- mkfs.ext4 ""$isosyncdir".img"
- # create live iso layout
- mkdir -p "$isostagingdir"
- mkdir -p "$isobootdir"
- mkdir -p "$isoefibootdir"
- mkdir -p "$isoliveosdir"
- mkdir -p "$isosupersquashdir"
- mkdir -p "$isolivesqfsdir"
- # mount && copy core stage 4 image
- mount -t squashfs "$chrootx64" "$isostagingdir"
- mount -t ext4 ""$isosyncdir".img" "$isosyncdir"
- rsync -aHAXr --progress "$isostagingdir/" "$isosyncdir/"
- # copy kernel into cdroot
- cp -avx ""$isosyncdir"/boot/"$isokernelname"" ""$isorootdir"/boot/vmlinuz"
- # generate live initramfs
- isostart
- isoramfs
- isostop
- # copy live initramfs into cdroot
- mv ""$isosyncdir"/boot/"$isodracutrd"" ""$isorootdir"/boot/initrd"
- # generate live efi image
- isostart
- isoefiimg
- isostop
- # copy efi image into cdroot
- mv ""$isosyncdir"/root/bootx64.efi" "$isoefibootdir"
- chmod 755 ""$isoefibootdir"/bootx64.efi"
- # generate grub chainloader for syslinux
- isostart
- isochainload
- isostop
- # copy chainloader parts into cdroot
- mv ""$isosyncdir"/root/core.img" "$isobootdir"
- cp -avx ""$isosyncdir"/usr/lib64/grub/i386-pc/lnxboot.img" "$isobootdir"
- # configure portage && give up control for package / desktop environment installation
- isostart
- isooverlays
- isobuildsystem
- isousertree
- isochroot
- isostop
- # enable system services
- isostart
- isoservices
- isostop
- # unmount rootfs before compression
- umount -l "$isosyncdir" > /dev/null 2>&1
- # move rootfs in place
- mv ""$isosyncdir".img" "$isolivesqfsdir"
- # squash rootfs with best compression
- mksquashfs "$isosupersquashdir" ""$isorootdir"/squashfs.img" -b 1048576 -comp xz -Xdict-size 100%
- # move squashed rootfs in place
- mv ""$isorootdir/"squashfs.img" "$isoliveosdir"
-}
-
-bootcoreiso () {
- # configure live bootloader
- git clone https://gitlab.com/"$releasename"/boot-core.git "$bootcorepath"
- cp -avx "$bootcorefiles" "$isorootdir"
-}
-
-cleanupiso () {
- umount "$isostagingdir"
- rm -rf "$isosyncdir"
- rm -rf "$isostagingdir"
- rm -rf "$isosupersquashdir"
- rm -rf "$bootcorepath"
-}
-
-makeiso () {
- grub2-mkrescue -o ""$releasename"-"$releasetarget"-"$releaseversion"-"$isomainarch".iso" "$isorootdir"
-}
-
-main () {
- chrootchecksum
- prepareiso
- bootcoreiso
- cleanupiso
- makeiso
-}
-
-main
diff --git a/makepkg b/makepkg
deleted file mode 100755
index d8590b5..0000000
--- a/makepkg
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env bash
-
-chrootprepare () {
- # check our environment for sanity
- # if safe, trigger start && break the loop to build packages
- # else trigger stop && cleanup && check again
- while : true ; do
- if [[ ! -d "$rodir" && ! -d "$rwdir" && ! -d "$workdir" && ! -d "$overlaydir" ]] ; then
- for i in "$rodir" "$rwdir" "$workdir" "$overlaydir" ; do
- mkdir "$i"
- done
- chrootstart
- break
- elif [[ -d "$rodir" && -d "$rwdir" && -d "$workdir" && -d "$overlaydir" ]] ; then
- chrootstop
- for i in "$rodir" "$rwdir" "$workdir" "$overlaydir" ; do
- rm -rf "$i"
- done
- continue
- fi
- done
-}
-
-main () {
- chrootchecksum
- chrootprepare
- chrootoverlays
- chrootbuildsystem
- chrootdevtree
- chrootbuild
- chrootx64
- chrootstop
-}
-
-main
-exit 0
diff --git a/vasile b/vasile
index 8cebaaa..68e9c4a 100755
--- a/vasile
+++ b/vasile
@@ -18,10 +18,10 @@ kernelconfig
case $1 in
--makepkg)
- source /usr/share/vasile/makepkg
+ makepkg
;;
--makeiso)
- source /usr/share/vasile/makeiso
+ makeiso
;;
--resetmode)
source /usr/share/vasile/resetmode