vinstaller/main.sh

457 lines
11 KiB
Bash
Raw Permalink Normal View History

2022-02-06 22:12:28 +01:00
#!/bin/bash
2022-02-09 21:19:44 +01:00
PASS="oem"
2022-02-08 18:08:12 +01:00
TIMEZONE="Europe/Berlin"
2022-02-07 16:56:04 +01:00
2023-06-13 09:20:06 +02:00
REPO="https://repo-de.voidlinux.org/current"
2022-02-07 16:56:04 +01:00
2022-02-06 22:12:28 +01:00
main="/tmp/vinstall"
2022-02-09 12:20:53 +01:00
target="/mnt"
2022-02-07 05:35:12 +01:00
tmp_target="${main}/tmp_target"
2022-02-07 16:56:04 +01:00
vars="${target}/tmp/vinstaller/vars"
2022-02-08 21:08:24 +01:00
files="./files"
2022-02-06 23:25:49 +01:00
2022-02-09 13:20:09 +01:00
if [ -s ./conf ]; then
. ./conf
2022-02-09 13:19:32 +01:00
fi
2022-02-08 21:38:13 +01:00
umount -R ${target}/boot/efi ${target}/boot ${target}/tmp/vinstaller/ ${target}/home ${target}
vgchange -an
cryptsetup close /dev/mapper/luks*
rm -rf $main
2022-02-09 12:20:53 +01:00
DEBUG=${DEBUG:=0}
2022-02-08 22:39:34 +01:00
2022-02-07 19:29:15 +01:00
if [ "${DEBUG}" == "2" ]; then
set -x
fi
2022-02-07 01:34:16 +01:00
2022-02-07 18:08:48 +01:00
mkdir -p ${target} ${tmp_target}
2022-02-06 22:12:28 +01:00
2022-02-07 05:06:37 +01:00
. ./etc/functions
2022-02-06 22:12:28 +01:00
target_phy_disk() {
header "Choose target disk"
local DISKS_DETAILS
local output
2022-02-07 15:07:41 +01:00
DISKS_DETAILS=$(lsblk -l -o KNAME,TYPE,SIZE,MODEL|grep disk)
2022-02-07 18:08:48 +01:00
echo "${DISKS_DETAILS}"
2022-02-07 18:12:03 +01:00
multiplechoice $(echo "${DISKS_DETAILS}"|awk '{print $1}')
2022-02-07 15:12:53 +01:00
TARGET_PHY_DISK="${output}"
2022-02-06 22:12:28 +01:00
}
target_phy_id() {
local i
local f2
2022-09-12 11:11:20 +02:00
if ! echo "${TARGET_PHY_DISK}" | grep -q vd ; then
2022-09-12 11:09:17 +02:00
for i in $(find /dev/disk/by-id ! -type d | grep -v part); do
if realpath "${i}" | grep -q -i "${TARGET_PHY_DISK}"; then
if echo "${i}" | grep -v "wwn" | grep -q -v "eui"; then
TARGET_PHY_ID="${i}"
f2="1"
2022-09-12 11:36:19 +02:00
part="-part"
2022-09-12 11:09:17 +02:00
fi
2022-02-06 22:12:28 +01:00
fi
2022-09-12 11:09:17 +02:00
done
else
2022-09-12 11:36:19 +02:00
ln "/dev/${TARGET_PHY_DISK}" /dev/disk/by-id/vda
2022-09-12 11:09:17 +02:00
TARGET_PHY_ID="/dev/${TARGET_PHY_DISK}"
2022-09-12 11:11:20 +02:00
f2="1"
2022-09-12 11:09:17 +02:00
fi
2022-02-07 15:08:31 +01:00
if [ "$f2" == "1" ]; then
2022-02-06 22:12:28 +01:00
return 0
else
err "no id found"
fi
}
use_efi() {
if test -e /sys/firmware/efi; then
EFI=1
2022-02-07 19:25:27 +01:00
mount -t efivarfs efivarfs /sys/firmware/efi/efivars
2022-02-06 22:12:28 +01:00
else
EFI=0
fi
}
encryption_style() {
2022-02-07 16:38:46 +01:00
ENC=1
2022-02-06 22:12:28 +01:00
header "Choose encryption style"
2022-02-07 23:08:12 +01:00
echo "a) keyfile in initramfs" #bios: 1 uefi: 2
2022-02-08 18:57:09 +01:00
echo "b) no encryption" #bios: 1 uefi: 2
2022-02-07 23:08:12 +01:00
echo "c) no keyfile (double pw enter)" #bios: 1 uefi: 2
2022-02-07 05:38:43 +01:00
#echo "not implemented:"
2022-02-08 18:57:09 +01:00
#echo "d) keyfile on usb" #bios: 1 uefi: 2
2022-08-05 14:20:55 +02:00
echo "e) unencrypted boot" #bios: 2 uefi: 3 (hier fehlt noch eine)
multiplechoice "a" "b" "c" "e" #"d" "e"
2022-02-07 18:08:48 +01:00
ENCRYPTION_STYLE="${output}"
if [ "${ENCRYPTION_STYLE}" == "b" ]; then
2022-02-07 16:38:46 +01:00
ENC=0
fi
2022-02-06 22:12:28 +01:00
}
2022-02-06 23:25:49 +01:00
hibernation() {
ramsize="$(($(getconf _PHYS_PAGES) * $(getconf PAGE_SIZE) / (1024 * 1024)))"
ramsize="$(awk "BEGIN { printf(\"%.0f\n\", ${ramsize}/1024); }")"
HIBERNATE=1
if [[ "${ramsize}" -lt "2" ]]; then
SWAPSIZE="$(( ramsize * 2 ))"
SWAPSIZE="$(( ramsize * 3 ))"
elif [[ "${ramsize}" -ge "2" ]] && [[ "${ramsize}" -lt "8" ]]; then
SWAPSIZE="${ramsize}"
SWAPSIZE="$(( ramsize * 2 ))"
elif [[ "${ramsize}" -ge "8" ]] && [[ "${ramsize}" -lt "16" ]]; then
SWAPSIZE="${ramsize}"
SWAPSIZE="$(awk "BEGIN { printf(\"%.0f\n\", ${ramsize}*1.5); }")"
elif [[ "${ramsize}" -ge "16" ]]; then
SWAPSIZE="4"
echo "hibernate not recommended, turning off"
HIBERNATE="0"
SWAPSIZE="4"
fi
}
do_partition() {
header "do partition"
start=1
2022-08-05 15:09:05 +02:00
end=1
2022-02-07 23:07:46 +01:00
TARGET_PART="1"
2022-02-06 23:25:49 +01:00
if [ "$EFI" == "1" ]; then
2022-02-07 18:08:48 +01:00
parted "${TARGET_PHY_ID}" -s -- mklabel gpt
2022-02-07 15:27:47 +01:00
sleep 2
2022-02-07 15:20:30 +01:00
size=512
2022-08-05 15:09:05 +02:00
end=$(( start + size ))
parted "${TARGET_PHY_ID}" unit mib -s -- mkpart EFI fat32 "$start" "$end"
2022-02-07 18:08:48 +01:00
parted "${TARGET_PHY_ID}" unit mib -s -- set 1 esp on
2022-08-05 15:09:05 +02:00
TARGET_PART="2"
2022-08-05 15:27:58 +02:00
start="$(( end ))"
2022-02-07 01:36:01 +01:00
sleep 2
2022-09-12 11:36:19 +02:00
mkfs.vfat -I -F32 "${TARGET_PHY_ID}${part}1"
2022-08-05 15:09:05 +02:00
if [ "${ENCRYPTION_STYLE}" == "e" ]; then
size=2048
end=$(( start + size ))
parted "${TARGET_PHY_ID}" unit mib -s -- mkpart boot ext4 "$start" "${end}"
TARGET_PART="3"
2022-08-05 15:27:58 +02:00
start="$(( end ))"
2022-09-12 11:36:19 +02:00
BOOTDEV="${TARGET_PHY_ID}${part}2"
2022-08-05 15:09:05 +02:00
sleep 2
2022-09-12 11:36:19 +02:00
mkfs.btrfs -q -f "${TARGET_PHY_ID}${part}2"
2022-08-05 15:09:05 +02:00
fi
parted "${TARGET_PHY_ID}" unit mib -s -- mkpart root ext4 "$start" 100%
2022-09-12 11:36:19 +02:00
dd if=/dev/random of="${TARGET_PHY_ID}${part}${TARGET_PART}" bs=512 count=4
2022-02-06 23:25:49 +01:00
else
2022-02-07 18:33:17 +01:00
parted "${TARGET_PHY_ID}" -s -- mklabel msdos
2022-02-07 15:27:47 +01:00
sleep 2
2022-02-08 18:57:09 +01:00
if [ "${ENCRYPTION_STYLE}" == "e" ]; then
size=2048
2022-08-05 15:09:05 +02:00
end=$(( start + size ))
parted "${TARGET_PHY_ID}" unit mib -s -- mkpart primary ext4 "${start}" "${end}"
2022-08-05 15:27:58 +02:00
start="$(( end ))"
2022-08-05 15:09:05 +02:00
TARGET_PART="2"
2022-09-12 11:36:19 +02:00
BOOTDEV="${TARGET_PHY_ID}${part}1"
2022-02-08 18:57:09 +01:00
sleep 2
2022-09-12 11:36:19 +02:00
mkfs.btrfs -q -f "${TARGET_PHY_ID}${part}1"
2022-02-08 18:57:09 +01:00
fi
parted "${TARGET_PHY_ID}" unit mib -s -- mkpart primary ext4 "$start" -1s
2022-09-12 11:36:19 +02:00
dd if=/dev/random of="${TARGET_PHY_ID}${part}${TARGET_PART}" bs=512 count=4
2022-02-06 23:25:49 +01:00
fi
2022-02-07 01:36:01 +01:00
sleep 2
2022-09-12 11:36:19 +02:00
TARGETNAME="$(basename "${TARGET_PHY_ID}${part}${TARGET_PART}")"
2022-02-07 18:08:48 +01:00
TARGETNAME_UNDERSCORE="${TARGETNAME//-/_}"
2022-09-12 11:36:19 +02:00
T="${TARGET_PHY_ID}${part}${TARGET_PART}"
2022-08-05 14:31:20 +02:00
if [ "${ENCRYPTION_STYLE}" == "a" ] || [ "${ENCRYPTION_STYLE}" == "c" ] || [ "${ENCRYPTION_STYLE}" == "d" ] || [ "${ENCRYPTION_STYLE}" == "e" ]; then
2022-02-07 18:08:48 +01:00
T="/dev/mapper/luks_${TARGETNAME_UNDERSCORE}"
2022-09-12 11:36:19 +02:00
echo -n "${PASS}" | cryptsetup luksFormat --type luks1 "${TARGET_PHY_ID}${part}${TARGET_PART}" -d -
2022-02-08 19:02:57 +01:00
#echo -n "${PASS}" | sudo cryptsetup luksOpen /dev/sdc1 sdc1 -d -
2022-09-12 11:36:19 +02:00
echo -n "${PASS}" | cryptsetup luksOpen "${TARGET_PHY_ID}${part}${TARGET_PART}" "luks_${TARGETNAME_UNDERSCORE}" -d -
2022-02-07 06:15:46 +01:00
fi
2022-02-08 17:37:40 +01:00
vgcreate -y --force "vg_${TARGETNAME_UNDERSCORE}" "${T}"
lvcreate -y --name swap -L "${SWAPSIZE}G" "vg_${TARGETNAME_UNDERSCORE}"
lvcreate -y --name root -l 100%FREE "vg_${TARGETNAME_UNDERSCORE}"
2022-02-07 18:08:48 +01:00
mkswap -f "/dev/mapper/vg_${TARGETNAME_UNDERSCORE}-swap"
2022-02-08 18:57:09 +01:00
mkfs.btrfs -q -f "/dev/mapper/vg_${TARGETNAME_UNDERSCORE}-root"
2022-02-07 18:08:48 +01:00
mount "/dev/mapper/vg_${TARGETNAME_UNDERSCORE}-root" "${target}"
2022-02-07 23:49:59 +01:00
btrfs subvol create "${target}/rootfs"
btrfs subvol create "${target}/homefs"
2022-02-08 18:57:09 +01:00
mkdir -p "${target}/system/snapshots/update" "${target}/system/snapshots/regular" "${target}/system/backup"
2022-02-07 18:08:48 +01:00
umount "${target}"
2022-02-07 23:49:59 +01:00
mount "/dev/mapper/vg_${TARGETNAME_UNDERSCORE}-root" "${target}" -o subvol=rootfs
2022-02-08 18:58:15 +01:00
for i in boot home dev proc sys tmp etc var/lib/backup/quelle/rootfs var/lib/backup/ziel var/db; do
mkdir -p "${target}/${i}"
done
2022-08-05 15:09:05 +02:00
2022-02-08 18:58:15 +01:00
mount "/dev/mapper/vg_${TARGETNAME_UNDERSCORE}-root" "${target}/home" -o subvol=homefs
2022-08-05 15:57:09 +02:00
if [ "${ENCRYPTION_STYLE}" == "e" ]; then
mkdir -p "${target}/boot" "${target}/var/lib/backup/quelle/bootfs"
mount "${BOOTDEV}" "${target}/boot"
mkdir -p "${target}/boot/system/snapshots/update" "${target}/boot/system/snapshots/regular" "${target}/boot/system/backup"
btrfs subvol create "${target}/boot/bootfs"
umount "${target}/boot"
mount "${BOOTDEV}" "${target}/boot" -o subvol=bootfs
fi
2022-02-07 18:08:48 +01:00
if [ "${EFI}" == "1" ]; then
mkdir -p "${target}/boot/efi"
2022-09-12 11:37:34 +02:00
mount "${TARGET_PHY_ID}${part}1" "${target}/boot/efi"
2022-02-06 22:12:28 +01:00
fi
2022-02-07 03:32:29 +01:00
2022-02-08 18:08:12 +01:00
2022-02-06 22:12:28 +01:00
}
2022-02-07 02:34:12 +01:00
user() {
2022-02-07 16:43:23 +01:00
header "Username"
2022-02-07 04:19:38 +01:00
input "Username" "voiduser"
2022-02-07 18:08:48 +01:00
USERNAME="${output}"
2022-02-07 02:34:12 +01:00
}
2022-02-06 23:25:49 +01:00
2022-02-07 03:32:29 +01:00
hostname() {
2022-02-07 16:43:23 +01:00
header "Hostname"
2022-02-07 04:19:38 +01:00
input "Hostname" "voidlinux"
2022-02-07 18:08:48 +01:00
HOSTNAME="${output}"
2022-02-07 03:32:29 +01:00
}
base() {
2022-02-07 03:50:46 +01:00
. ./etc/base
2022-02-07 03:32:29 +01:00
packages
reset packages
}
2022-02-07 05:35:12 +01:00
profile() {
2022-02-07 17:23:22 +01:00
for i in $(find ./etc/profile/ -type f|sort); do
2022-02-07 18:08:48 +01:00
profile+=("$(basename "${i}")")
2022-02-07 05:35:12 +01:00
done
if [ "${#profile[@]}" -gt "1" ]; then
2022-02-07 16:43:23 +01:00
header "Select your Profile"
2022-02-07 05:35:12 +01:00
multiplechoice "${profile[@]}"
2022-02-07 18:08:48 +01:00
PROFILE="${output}"
2022-02-07 05:35:12 +01:00
elif [ "${#profile[@]}" -eq "1" ]; then
2022-02-07 18:08:48 +01:00
PROFILE="${profile[0]}"
2022-02-07 05:35:12 +01:00
fi
if ! [ "${#profile[@]}" -eq "0" ]; then
2022-02-07 18:08:48 +01:00
. "./etc/profile/${PROFILE}"
2022-02-07 04:18:16 +01:00
packages
reset packages
2022-02-07 18:08:48 +01:00
cp "./etc/profile/${PROFILE}" "${tmp_target}"
if [ "${need_gfx}" == "1" ]; then
2022-02-07 17:58:29 +01:00
readin gfx
2022-02-07 05:35:12 +01:00
fi
2022-02-07 22:50:49 +01:00
if [ "${need_xserver}" == "1" ]; then
readin xserver
fi
2022-02-07 18:08:48 +01:00
if [ "${need_sound}" == "1" ]; then
2022-02-07 17:58:29 +01:00
readin soundsystem
2022-02-07 05:35:12 +01:00
fi
2022-02-07 02:34:12 +01:00
fi
}
2022-02-06 23:25:49 +01:00
2022-02-09 02:06:41 +01:00
printing() {
2022-02-09 09:51:29 +01:00
header "Printing"
2022-02-09 02:06:41 +01:00
if yesno "Enable printing?" n; then
readin printing
fi
}
2022-02-07 02:34:12 +01:00
lang() {
2022-02-09 01:24:54 +01:00
header "Language"
2022-02-07 04:09:57 +01:00
multiplechoice "de" "en"
2022-02-09 10:41:57 +01:00
LANGUAGE_="${output}"
2022-02-08 23:55:52 +01:00
L1="en_US"
2022-02-09 10:41:57 +01:00
if [ "${LANGUAGE_}" == "de" ]; then
2022-02-07 18:08:48 +01:00
L1="de_DE"
2022-02-09 01:24:54 +01:00
fi
}
lang_key() {
header "Keyboard layout"
multiplechoice de en
L2="en"
KEY_LANG="${output}"
if [ "${KEY_LANG}" == "de" ]; then
2022-02-08 18:08:12 +01:00
L2="de-latin1-nodeadkeys"
2022-02-07 02:34:12 +01:00
fi
}
2022-02-09 01:24:54 +01:00
2022-02-07 02:34:12 +01:00
do_install() {
2022-02-07 16:43:23 +01:00
header "Installation"
2022-02-07 18:08:48 +01:00
mkdir -p "${target}/var/db/xbps/keys"
cp /var/db/xbps/keys/* "${target}/var/db/xbps/keys"
2022-02-08 20:02:23 +01:00
mkdir -p "${target}/etc/xbps.d"
2022-02-08 19:59:23 +01:00
touch "${target}/etc/xbps.d/10-ignore-pkg.conf"
for i in "${ignorepkgs[@]}"; do
echo "ignorepkg=${i}" >> "${target}/etc/xbps.d/10-ignore-pkg.conf"
2022-02-08 19:59:51 +01:00
done
2023-06-13 08:52:53 +02:00
2023-06-13 08:58:41 +02:00
if grep -q musl <<< $(ldd /bin/ls); then
2023-06-13 08:55:03 +02:00
export XBPS_ARCH="x86_64-musl"
2023-06-13 09:04:08 +02:00
REPO="${REPO}/musl"
2023-06-13 08:39:02 +02:00
else
2023-06-13 08:55:03 +02:00
export XBPS_ARCH="x86_64"
2023-06-13 08:39:02 +02:00
fi
2022-02-09 10:55:37 +01:00
if [ "${DEBUG}" -ge "1" ]; then
2023-06-13 09:02:01 +02:00
xbps-install -S -R "${REPO}" -R https://rotce.de/pakete -r "${target}" "${pkgs[@]}"
2022-02-08 20:06:19 +01:00
else
2023-06-13 09:02:01 +02:00
xbps-install -S -y -R "${REPO}" -R https://rotce.de/pakete -r "${target}" "${pkgs[@]}"
2022-02-08 20:05:52 +01:00
fi
2022-02-07 02:34:12 +01:00
}
2022-02-09 10:55:37 +01:00
echo_vars() {
2022-02-09 11:02:30 +01:00
echo "USERNAME=${USERNAME}"
echo "PASS=${PASS}"
echo "HOSTNAME=${HOSTNAME}"
2022-02-09 10:55:37 +01:00
if [ "${DEBUG}" -ge "1" ]; then
2022-02-09 11:02:30 +01:00
echo "EFI=${EFI}"
echo "LANGUAGE_=${LANGUAGE_}"
echo "L1=${L1}"
echo "L2=${L2}"
2022-02-09 12:20:53 +01:00
echo "KEY_LANG=${KEY_LANG}"
2022-02-09 11:02:30 +01:00
echo "TARGET_PHY_ID=${TARGET_PHY_ID}"
echo "ENCRYPTION_STYLE=${ENCRYPTION_STYLE}"
echo "TIMEZONE=${TIMEZONE}"
echo "ENC=${ENC}"
echo "HIBERNATE=${HIBERNATE}"
2022-02-09 12:20:53 +01:00
echo "DEBUG=${DEBUG}"
2022-02-09 10:55:37 +01:00
fi
}
2022-02-07 03:32:29 +01:00
do_chroot() {
2022-02-07 18:08:48 +01:00
mkdir -p "${target}/tmp/vinstaller/"
2022-02-07 16:10:15 +01:00
2022-02-07 18:08:48 +01:00
mount -t tmpfs -o size=50m tmpfs "${target}/tmp/vinstaller/"
mkdir -p "${target}/tmp/vinstaller/run"
cp ./etc/functions "${target}/tmp/vinstaller/"
cp ./etc/base "${target}/tmp/vinstaller/"
2022-02-07 03:42:38 +01:00
2022-02-07 18:08:48 +01:00
cp -rf "${tmp_target}" "${target}/tmp/vinstaller/run"
2022-02-07 03:42:38 +01:00
2022-02-08 22:39:34 +01:00
#mkdir -p "${target}/tmp/vinstaller/files"
cp -rf "${files}" "${target}/tmp/vinstaller"
2022-02-08 20:57:04 +01:00
2022-02-08 20:41:09 +01:00
2022-02-07 20:49:23 +01:00
echo "USERNAME=${USERNAME}" > "${vars}"
2022-02-08 18:08:12 +01:00
echo "PASS=${PASS}" >> "${vars}"
2022-02-07 20:49:23 +01:00
echo "HOSTNAME=${HOSTNAME}" >> "${vars}"
echo "EFI=${EFI}" >> "${vars}"
2022-02-09 10:41:57 +01:00
echo "LANGUAGE_=${LANGUAGE_}" >> "${vars}"
2022-02-07 20:49:23 +01:00
echo "L1=${L1}" >> "${vars}"
2022-02-09 01:49:01 +01:00
echo "L2=${L2}" >> "${vars}"
2022-02-09 12:20:53 +01:00
echo "KEY_LANG=${KEY_LANG}" >> "${vars}"
2022-02-07 20:49:23 +01:00
echo "TARGET_PHY_ID=${TARGET_PHY_ID}" >> "${vars}"
echo "TARGET_PART=${TARGET_PART}" >> "${vars}"
echo "TARGETNAME_UNDERSCORE=${TARGETNAME_UNDERSCORE}" >> "${vars}"
echo "ENCRYPTION_STYLE=${ENCRYPTION_STYLE}" >> "${vars}"
2022-02-08 18:08:12 +01:00
echo "TIMEZONE=${TIMEZONE}" >> "${vars}"
2022-02-07 20:49:23 +01:00
echo "ENC=${ENC}" >> "${vars}"
echo "HIBERNATE=${HIBERNATE}" >> "${vars}"
2022-02-09 12:20:53 +01:00
echo "DEBUG=${DEBUG}" >> "${vars}"
2022-08-05 15:09:05 +02:00
echo "BOOTDEV=${BOOTDEV}" >> "${vars}"
2022-09-12 11:43:04 +02:00
if [ ${part} ]; then
echo "part=${part}" >> "${vars}"
fi
2022-02-07 03:32:29 +01:00
2022-02-07 18:08:48 +01:00
cat <<EOF > "${target}/tmp/vinstaller/main_chroot"
2022-02-07 17:22:26 +01:00
#!/usr/bin/bash
2022-02-09 14:00:29 +01:00
cd /tmp/vinstaller
2022-02-08 20:41:09 +01:00
FILESDIR=/tmp/vinstaller/files
2022-02-07 05:06:12 +01:00
. /tmp/vinstaller/functions
2022-02-07 16:07:10 +01:00
. /tmp/vinstaller/vars
2022-02-07 18:27:12 +01:00
header base
2022-02-07 16:07:10 +01:00
. /tmp/vinstaller/base
2022-02-07 18:27:12 +01:00
config
reset config
2022-02-07 16:07:10 +01:00
2022-02-09 13:18:51 +01:00
for file in \$(find /tmp/vinstaller/run -type f | sort); do
2022-02-07 19:10:58 +01:00
if grep -q "config()" "\${file}"; then
header \"\$(basename \$file)\"
. \$file
config
reset config
fi
2022-02-07 03:32:29 +01:00
done
EOF
2022-02-07 04:42:31 +01:00
2022-02-08 18:08:12 +01:00
for dir in dev proc sys run; do
mkdir -p "${target}/${dir}"
mount --rbind "/${dir}" "${target}/${dir}"
mount --make-rslave "${target}/${dir}"
done
2022-02-07 18:08:48 +01:00
chmod +x "${target}/tmp/vinstaller/main_chroot"
2022-02-07 18:22:59 +01:00
chroot "${target}" "/tmp/vinstaller/main_chroot"
2022-02-07 03:32:29 +01:00
}
2022-02-07 16:15:28 +01:00
ready() {
2022-02-07 16:43:23 +01:00
header "Ready!!"
2022-02-07 16:15:28 +01:00
echo ""
2022-02-07 16:47:53 +01:00
echo "pakete:"
echo "${pkgs[@]}"
2022-02-07 23:53:57 +01:00
echo ""
2022-02-08 20:45:04 +01:00
echo "ignorierte pakete:"
echo "${ignorepkgs[@]}"
echo ""
2022-02-07 23:53:57 +01:00
echo "vars:"
2022-02-09 10:55:37 +01:00
echo_vars
2022-02-07 23:53:57 +01:00
echo ""
2022-02-07 16:15:28 +01:00
}
2022-02-09 02:06:41 +01:00
bootloader() {
readin bootloader
}
network() {
readin network
}
2022-02-09 14:30:45 +01:00
add_arg_pkg() {
2022-02-09 15:30:41 +01:00
xbps-install -S >/dev/null
2022-02-09 14:41:11 +01:00
for i in "${@}"; do
2022-02-09 14:42:05 +01:00
if xbps-query -Rs ${i}|awk '{print $2}'|grep "^${i}" >/dev/null; then
2022-02-09 14:39:58 +01:00
addpkg "${@}"
2022-02-09 15:22:00 +01:00
else
na_pkg+=("${i}")
2022-02-09 14:39:58 +01:00
fi
2022-02-09 14:40:24 +01:00
done
2022-02-09 15:22:00 +01:00
if [ "${#na_pkg[@]}" -gt "0" ]; then
echo "package$(if [ ${#na_pkg[@]} -gt 1 ]; then printf "s"; fi) ${na_pkg[@]} not available"
if ! yesno "exit?" n; then
exit 1
fi
fi
2022-02-09 14:30:45 +01:00
}
2022-02-07 02:34:12 +01:00
target_phy_disk
target_phy_id
use_efi
encryption_style
hibernation
2022-02-09 02:06:41 +01:00
bootloader
2023-06-13 08:49:08 +02:00
hostname
2022-02-07 02:34:12 +01:00
user
2022-02-07 16:56:04 +01:00
lang
2022-02-09 01:27:22 +01:00
lang_key
2022-02-07 02:34:12 +01:00
base
2022-02-07 05:35:38 +01:00
profile
2022-02-09 02:06:41 +01:00
network
printing
2022-02-09 15:22:00 +01:00
add_arg_pkg "${@}"
2022-02-08 20:17:01 +01:00
header "Do installation"
2022-02-09 15:40:11 +01:00
rly_install=n
2022-02-09 13:17:24 +01:00
if [ "${DEBUG}" -ge "1" ]; then
echo_vars
2022-02-09 15:40:11 +01:00
rly_install=y
2022-02-09 13:17:24 +01:00
fi
2022-02-09 15:40:11 +01:00
if ! yesno "Do you really wanna install?" ${rly_install}; then
2022-02-08 20:17:01 +01:00
exit
fi
2022-02-07 00:29:48 +01:00
do_partition
2022-02-07 03:32:29 +01:00
do_install
2022-02-07 15:07:41 +01:00
do_chroot
2022-02-08 20:17:01 +01:00
2022-08-05 16:05:01 +02:00
cp -rf ~/ansible ${target}/root
2022-08-04 15:48:04 +02:00
2022-02-07 23:49:59 +01:00
ready