#!/bin/bash baseDir=/media/Accensio/live build=$baseDir/build config=$baseDir/config iso=$baseDir/iso if [ "$EUID" -ne 0 ] then echo "Please run as root" exit 1 fi _usage() { cat <<"EOF" -f Make full live image -x Make xfce live image -c Make cinnamon live image -v Make xfce-vm live image -a Make live image for android EOF } if [ -z "$1" ] then _usage exit 1 fi KERNEL_PARAM="boot=live components lang=fr_FR.UTF-8 locales=fr_FR.UTF-8 keyboard-layouts=fr keyboard-model=pc105 timezone=Europe/Paris utc=yes" keep_iso="true" pack_full=(live cli firmware xfce4 gui cinnamon gui_opt) pack_xfce=(live cli firmware xfce4 gui) pack_cinnamon=(live cli firmware cinnamon gui) pack_vmxfce=(live cli firmware xfce4 gui vm) export http_proxy="http://192.168.110.1:3142" _config() { mkdir -p $build/config cd $build #cp -r $config/auto $build/auto sed -i 's:\(--bootappend-live\).*:\1 "'"$KERNEL_PARAM"'":' $build/auto/config ln -sr $config/includes.chroot $build/config/includes.chroot lb clean lb clean --cache lb config noauto \ --architectures amd64 \ --distribution bullseye \ --binary-images iso-hybrid \ --apt-http-proxy "http://192.168.110.1:3142" \ --archive-areas "main contrib non-free" \ --debian-installer none \ --apt-recommends false \ --updates true \ --security true \ --source false \ --backports false \ --memtest none \ --bootappend-live "boot=live components lang=fr_FR.UTF-8 locales=fr_FR.UTF-8 keyboard-layouts=fr keyboard-model=pc105 timezone=Europe/Paris utc=yes" \ rm $build/config/package-lists/* eval pack=\${pack_${type}[@]} for file in ${pack[@]}; do ln -sr $config/package-lists/$file.list.chroot $build/config/package-lists/$file.list.chroot done } _build() { #time nice -20 ionice -c 1 lb build lb bootstrap lb chroot } _create_squashfs() { lb binary_chroot lb binary_rootfs lb binary_linux-image lb binary_syslinux out="$iso/$type" install -d -m 0755 -o $SUDO_UID -g $SUDO_GID $out cp $build/binary/live/{initrd.img,vmlinuz,filesystem.squashfs} $out/ chown $SUDO_UID:$SUDO_GID $out/{initrd.img,vmlinuz,filesystem.squashfs} lb chroot_sysfs remove lb chroot_selinuxfs remove lb chroot_proc remove lb chroot_devpts remove } _create_iso() { lb binary out="$iso/$type" install -d -m 0755 -o $SUDO_UID -g $SUDO_GID $out cp $build/live-image-amd64.hybrid.iso $out/live-${type}-image.iso chown $SUDO_UID:$SUDO_GID $out/live-${type}-image.iso } _extract() { cd $out 7z e live-${type}-image.iso live/{initrd.img,vmlinuz,filesystem.squashfs} chown $SUDO_UID:$SUDO_GID . -R rm live-${type}-image.iso } _delete() { echo "Delete $build" # read -p "You sure ? " -n 1 -r # echo # if [[ $REPLY =~ ^[YyOo]$ ]] # then rm -r $build # else # echo "Cancel" # fi } while getopts "fxcva" OPTION; do case $OPTION in f) type="full" _config _build _create_squashfs _delete ;; x) type="xfce" _config _build mkdir -p $build/chroot/etc/skel/.ssh cp /home/lionel/.ssh/{config,key_rsa_majalis,key_rsa_majalis.pub} $build/chroot/etc/skel/.ssh _create_squashfs _delete ;; v) type="vmxfce" _config _build _create_iso _delete ;; c) type="cinnamon" _config _build _create_iso _delete ;; a) type="android" KERNEL_PARAM+=" toram x-session-manager=/usr/bin/cinnamon-session" _config _build mkdir -p $build/chroot/etc/skel/.ssh cp /home/lionel/.ssh/{config,key_rsa_majalis,key_rsa_majalis.pub} $build/chroot/etc/skel/.ssh _create_iso _delete ;; *) _usage exit 1 ;; esac done if [ -z "$type" ] then _usage fi