Change make selection
This commit is contained in:
parent
12e5ecf49a
commit
4c28604143
176
make.sh
176
make.sh
@ -6,33 +6,33 @@ build=$baseDir/build
|
|||||||
|
|
||||||
config=$baseDir/config
|
config=$baseDir/config
|
||||||
|
|
||||||
iso=$baseDir/iso
|
|
||||||
|
|
||||||
if [ "$EUID" -ne 0 ]
|
if [ "$EUID" -ne 0 ]
|
||||||
then
|
then
|
||||||
echo "Please run as root"
|
echo "Please run as root"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
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_default=(dm-common xfce4 gui vm)
|
||||||
|
|
||||||
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)
|
|
||||||
|
|
||||||
_usage()
|
_usage()
|
||||||
{
|
{
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
-t Specifie type in list: $(printf "\e[96m${type_list[*]}\e[0m\n")
|
-d use default pack
|
||||||
-v Specifie Debian codename
|
-v Specifie Debian codename
|
||||||
|
-o Specifie output folder
|
||||||
|
-i if set create iso instead of only squashfs
|
||||||
EOF
|
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"
|
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()
|
_config()
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -79,21 +139,10 @@ _config()
|
|||||||
|
|
||||||
rm $build/config/package-lists/*
|
rm $build/config/package-lists/*
|
||||||
|
|
||||||
eval pack=\${pack_${type}[@]}
|
|
||||||
|
|
||||||
for file in ${pack[@]}; do
|
for file in ${pack[@]}; do
|
||||||
ln -sr $config/package-lists/$file.list.chroot $build/config/package-lists/$file.list.chroot
|
ln -sr $config/package-lists/$file.list.chroot $build/config/package-lists/$file.list.chroot
|
||||||
done
|
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()
|
_build()
|
||||||
@ -153,9 +202,14 @@ _create_iso()
|
|||||||
|
|
||||||
printf "\e[96mCopy ISO\e[0m\n"
|
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()
|
_delete()
|
||||||
@ -164,14 +218,20 @@ _delete()
|
|||||||
rm -r $build
|
rm -r $build
|
||||||
}
|
}
|
||||||
|
|
||||||
while getopts "t:v:" OPTION; do
|
while getopts "dv:o:i" OPTION; do
|
||||||
case $OPTION in
|
case $OPTION in
|
||||||
t)
|
d)
|
||||||
type=${OPTARG}
|
default=true
|
||||||
;;
|
;;
|
||||||
v)
|
v)
|
||||||
debian_version=${OPTARG}
|
debian_version=${OPTARG}
|
||||||
;;
|
;;
|
||||||
|
o)
|
||||||
|
out="$(realpath ${OPTARG})"
|
||||||
|
;;
|
||||||
|
i)
|
||||||
|
iso=true
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
_usage
|
_usage
|
||||||
exit 1
|
exit 1
|
||||||
@ -179,61 +239,15 @@ while getopts "t:v:" OPTION; do
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
if ! [[ "${type_list[*]}" =~ "$type" ]]
|
_check
|
||||||
then
|
[[ $default = true ]] && pack=("${pack_forced[@]} ${pack_default[@]}") || _choose
|
||||||
printf "Cannot proceed \e[96m$type\e[0m\n\n"
|
|
||||||
_usage
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf "\e[96mMake $type\e[0m\n"
|
|
||||||
printf "\e[96mDebian version of live system: $debian_version\e[0m\n"
|
|
||||||
|
|
||||||
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
|
_config
|
||||||
_build
|
_build
|
||||||
|
|
||||||
mkdir -p $build/chroot/etc/skel/.ssh
|
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
|
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
|
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