Change make selection
This commit is contained in:
parent
12e5ecf49a
commit
4c28604143
182
make.sh
182
make.sh
@ -6,33 +6,33 @@ build=$baseDir/build
|
||||
|
||||
config=$baseDir/config
|
||||
|
||||
iso=$baseDir/iso
|
||||
|
||||
if [ "$EUID" -ne 0 ]
|
||||
then
|
||||
echo "Please run as root"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
debian_version="bullseye"
|
||||
pack_list=(live cli disk net firmware dm-common xfce4 cinnamon gui libreoffice vm)
|
||||
|
||||
type_list=(full xfce cinnamon vmxfce vmfull)
|
||||
declare -A pack_name
|
||||
pack_name[dm-common]="Composant commun pour l' interface graphique"
|
||||
pack_name[xfce4]="Environnement de bureau Xfce"
|
||||
pack_name[cinnamon]="Environnement de bureau Cinnamon"
|
||||
pack_name[gui]="Ensemble de logiciel graphique"
|
||||
pack_name[libreoffice]="Libreoffice Writer et Calc"
|
||||
pack_name[vm]="Driver Virtualisation"
|
||||
|
||||
pack_full=(live cli disk net firmware xfce4 cinnamon dm-common gui gui_opt)
|
||||
pack_forced=(live cli disk net firmware)
|
||||
|
||||
pack_xfce=(live cli disk net firmware xfce4 dm-common gui)
|
||||
|
||||
pack_cinnamon=(live cli disk net firmware cinnamon dm-common gui)
|
||||
|
||||
pack_vmxfce=(live cli disk net firmware xfce4 dm-common gui vm)
|
||||
|
||||
pack_vmfull=(live cli disk net firmware xfce4 cinnamon dm-common gui vm)
|
||||
pack_default=(dm-common xfce4 gui vm)
|
||||
|
||||
_usage()
|
||||
{
|
||||
cat <<EOF
|
||||
-t Specifie type in list: $(printf "\e[96m${type_list[*]}\e[0m\n")
|
||||
-d use default pack
|
||||
-v Specifie Debian codename
|
||||
-o Specifie output folder
|
||||
-i if set create iso instead of only squashfs
|
||||
EOF
|
||||
}
|
||||
|
||||
@ -46,6 +46,66 @@ 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"
|
||||
|
||||
_check()
|
||||
{
|
||||
|
||||
if [ -z "$out" ]
|
||||
then
|
||||
printf "\e[31mPlease specifie output folder\e[0m\n"
|
||||
_usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$debian_version" ]
|
||||
then
|
||||
printf "\e[31mPlease specifie Debian codename\e[0m\n"
|
||||
_usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -d "$out" ]
|
||||
then
|
||||
printf "Write in \e[96m$out\e[0m folder\n"
|
||||
if [ "$(ls -A $out)" ]
|
||||
then
|
||||
printf "\e[91m$out is not empty be careful\e[0m\n"
|
||||
fi
|
||||
else
|
||||
printf "\e[31m$out is not a folder\e[0m\n"
|
||||
_usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
printf "Debian version of live system: \e[96m$debian_version\e[0m\n"
|
||||
|
||||
}
|
||||
|
||||
_choose()
|
||||
{
|
||||
declare -a checklist
|
||||
size=$((${#pack_list[@]}-(${#pack_forced[@]})))
|
||||
for pack in ${pack_list[@]}; do
|
||||
[[ "${pack_forced[*]}" =~ "$pack" ]] && continue
|
||||
[[ "${pack_default[*]}" =~ "$pack" ]] && status="ON" || status="OFF"
|
||||
|
||||
checklist+=($pack "${pack_name[$pack]}" $status)
|
||||
done
|
||||
|
||||
RESULT=$(whiptail --title "Make debian live system" --checklist "Select pack list" 15 70 ${size} "${checklist[@]}" 3>&1 1>&2 2>&3 | xargs)
|
||||
|
||||
pack=("${pack_forced[@]} ${RESULT[@]}")
|
||||
|
||||
printf "Pack list: \e[96m${pack[*]}\e[0m\n"
|
||||
|
||||
read -p "Continue ? " -n 1 -r
|
||||
echo
|
||||
if ! [[ $REPLY =~ ^[YyOo]$ ]]
|
||||
then
|
||||
echo "Cancel"
|
||||
exit
|
||||
fi
|
||||
}
|
||||
|
||||
_config()
|
||||
{
|
||||
|
||||
@ -79,21 +139,10 @@ _config()
|
||||
|
||||
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
|
||||
|
||||
if [ ! -f "$iso" ];then
|
||||
printf "\e[96mCreate ISO directory\e[0m\n"
|
||||
install -d -m 0755 -o $SUDO_UID -g $SUDO_GID $iso
|
||||
fi
|
||||
|
||||
out="$iso/$type"
|
||||
|
||||
install -d -m 0755 -o $SUDO_UID -g $SUDO_GID $out
|
||||
|
||||
}
|
||||
|
||||
_build()
|
||||
@ -153,9 +202,14 @@ _create_iso()
|
||||
|
||||
printf "\e[96mCopy ISO\e[0m\n"
|
||||
|
||||
cp $build/live-image-amd64.hybrid.iso $out/live-${type}-image.iso
|
||||
if [ -d "$out" ]
|
||||
then
|
||||
$out="$out/live-${debian_version}-image.iso"
|
||||
fi
|
||||
|
||||
chown $SUDO_UID:$SUDO_GID $out/live-${type}-image.iso
|
||||
cp $build/live-image-amd64.hybrid.iso $out
|
||||
|
||||
chown $SUDO_UID:$SUDO_GID $out
|
||||
|
||||
}
|
||||
_delete()
|
||||
@ -164,14 +218,20 @@ _delete()
|
||||
rm -r $build
|
||||
}
|
||||
|
||||
while getopts "t:v:" OPTION; do
|
||||
while getopts "dv:o:i" OPTION; do
|
||||
case $OPTION in
|
||||
t)
|
||||
type=${OPTARG}
|
||||
d)
|
||||
default=true
|
||||
;;
|
||||
v)
|
||||
debian_version=${OPTARG}
|
||||
;;
|
||||
o)
|
||||
out="$(realpath ${OPTARG})"
|
||||
;;
|
||||
i)
|
||||
iso=true
|
||||
;;
|
||||
*)
|
||||
_usage
|
||||
exit 1
|
||||
@ -179,61 +239,15 @@ while getopts "t:v:" OPTION; do
|
||||
esac
|
||||
done
|
||||
|
||||
if ! [[ "${type_list[*]}" =~ "$type" ]]
|
||||
then
|
||||
printf "Cannot proceed \e[96m$type\e[0m\n\n"
|
||||
_usage
|
||||
exit
|
||||
fi
|
||||
_check
|
||||
[[ $default = true ]] && pack=("${pack_forced[@]} ${pack_default[@]}") || _choose
|
||||
_config
|
||||
_build
|
||||
|
||||
printf "\e[96mMake $type\e[0m\n"
|
||||
printf "\e[96mDebian version of live system: $debian_version\e[0m\n"
|
||||
mkdir -p $build/chroot/etc/skel/.ssh
|
||||
cp -v /home/lionel/.ssh/{config,key_rsa_majalis,key_rsa_majalis.pub} $build/chroot/etc/skel/.ssh
|
||||
sudo -u $SUDO_USER ssh-keygen -H -F netdldata.net > $build/chroot/etc/skel/.ssh/known_hosts
|
||||
|
||||
read -p "Continue ? " -n 1 -r
|
||||
echo
|
||||
if ! [[ $REPLY =~ ^[YyOo]$ ]]
|
||||
then
|
||||
echo "Cancel"
|
||||
exit
|
||||
fi
|
||||
|
||||
case $type in
|
||||
"full")
|
||||
_config
|
||||
_build
|
||||
_create_squashfs
|
||||
_delete
|
||||
;;
|
||||
"xfce")
|
||||
_config
|
||||
_build
|
||||
mkdir -p $build/chroot/etc/skel/.ssh
|
||||
cp -v /home/lionel/.ssh/{config,key_rsa_majalis,key_rsa_majalis.pub} $build/chroot/etc/skel/.ssh
|
||||
sudo -u $SUDO_USER ssh-keygen -H -F netdldata.net > $build/chroot/etc/skel/.ssh/known_hosts
|
||||
_create_squashfs
|
||||
_delete
|
||||
;;
|
||||
"vmxfce")
|
||||
_config
|
||||
_build
|
||||
_create_iso
|
||||
_delete
|
||||
;;
|
||||
"vmfull")
|
||||
_config
|
||||
_build
|
||||
_create_iso
|
||||
_delete
|
||||
;;
|
||||
"cinnamon")
|
||||
_config
|
||||
_build
|
||||
_create_iso
|
||||
_delete
|
||||
;;
|
||||
*)
|
||||
_usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
[[ $iso = true ]] && _create_iso || _create_squashfs
|
||||
|
||||
_delete
|
||||
|
Loading…
x
Reference in New Issue
Block a user