debianlive/make.sh
2021-09-03 23:18:46 +02:00

216 lines
3.6 KiB
Bash
Executable File

#!/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
ln -sr $config/packages.chroot $build/config/packages.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