summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authordavidovski <david@davidovski.xyz>2023-01-15 21:24:17 +0000
committerdavidovski <david@davidovski.xyz>2023-01-15 21:24:17 +0000
commitc42abbd0f192a5d4a6a58fd901f45d2c06b018b5 (patch)
tree97d66bc36097e64e71c4b34ec28af39776f04427 /scripts
parentc74352c21a8ece4fc5c4e33afb13947b1ff82e44 (diff)
Add installer to isov1.7.6
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/install.sh139
-rwxr-xr-xscripts/installer.sh306
-rwxr-xr-xscripts/mkiso.sh92
3 files changed, 0 insertions, 537 deletions
diff --git a/scripts/install.sh b/scripts/install.sh
deleted file mode 100755
index 89ee11b..0000000
--- a/scripts/install.sh
+++ /dev/null
@@ -1,139 +0,0 @@
-#!/bin/sh
-
-default_packages="base linux-libre xipkg dracut grub bash"
-additional_packages="doas neofetch vim networkmanager"
-default_key="davidovski https://xi.davidovski.xyz/keychain/xi.pub"
-
-XIPKG="/usr/bin/xi"
-XIFLAGS="-ylu"
-TMPDIR=/tmp
-SYSROOT=$1
-
-umask 0022
-
-[ ! -e $XIPKG ] && {
- git clone https://xi.davidovski.xyz/git/xiutils.git $TMPDIR/xiutils
- make && make install
-
- git clone https://xi.davidovski.xyz/git/xipkg.git $TMPDIR/xipkg
- make && make install
-}
-
-echo "Please make sure that you have correctly formatted any partitions and mounted them as desired under $SYSROOT"
-
-[ $# -eq 0 ] && echo "Please specify where you would like to instal the system" && exit 1
-
-[ -e $SYSROOT ] && {
- printf "Remove existing system at $SYSROOT? [Y/n] "
- read response
- [ "$response" != "n" ] && rm -rf $SYSROOT && echo "removed $SYSROOT"
-}
-
-$XIPKG $XIFLAGS sync
-mkdir -p $SYSROOT
-$XIPKG $XIFLAGS -r $SYSROOT bootstrap
-mkdir -p $SYSROOT
-$XIPKG $XIFLAGS -r $SYSROOT install $default_packages
-$XIPKG $XIFLAGS -r $SYSROOT keyimport $default_key
-
-configuring_users () {
- echo "Setting root password: "
- xichroot $SYSROOT passwd
-
- echo
- echo "Creating user"
- read -p "Enter username: " username
- xichroot $SYSROOT useradd -s /bin/bash -m $username
- xichroot $SYSROOT passwd $username
-}
-
-configuring_system () {
- read -p "Enter system hostname: " hostname
-
- echo $hostname > $SYSROOT/etc/hostname
-
- cat > $SYSROOT/etc/hosts << EOF
-127.0.0.1 localhost
-::1 localhost
-127.0.1.1 $hostname.local $hostname
-EOF
-}
-
-configuring_nameservers () {
- echo "Configuring nameservers..."
-
- cat > $SYSROOT/etc/resolv.conf << EOF
-nameserver 80.80.80.80
-EOF
-}
-
-generating_fstab () {
- echo "Generating fstab..."
- xichroot $SYSROOT genfstab -U / > $SYSROOT/etc/fstab
-}
-
-building_initramfs () {
- echo "Building initramfs..."
- kernel_version=$(ls $SYSROOT/usr/lib/modules | tail -1)
- xichroot $SYSROOT mkdir /var/tmp
- xichroot $SYSROOT dracut --kver $kernel_version 2>$TMPDIR/dracut.log > $TMPDIR/dracut.log
-}
-
-installing_bootloader () {
- read -p "Install Grub? [y]" r
- [ "$r" != "n" ] && {
- opts="--target=x86_64-efi"
-
- xichroot $SYSROOT lsblk
- read -p "Enter efi directory: " efi_part
- opts="$opts --efi-directory=$efi_part"
-
- read -p "Removable system? [y]" r
- [ "$r" != "n" ] && {
- opts="$opts --removable"
- }
-
- xichroot $SYSROOT grub-install $opts
- xichroot $SYSROOT grub-mkconfig -o /boot/grub/grub.cfg
- }
-}
-
-fixing_permissions () {
- xichroot $SYSROOT chmod 755 /
- xichroot $SYSROOT chmod 755 /usr
- xichroot $SYSROOT chmod 755 /usr/bin
- xichroot $SYSROOT chmod 755 /usr/lib
-}
-
-downloading_additional_packages () {
- echo "Syncing repos..."
- xichroot $SYSROOT xi sync
- echo "Downloading additional packages..."
- xi -r $SYSROOT $XIFLAGS install $additional_packages
-}
-
-steps="
-configuring_nameservers
-generating_fstab
-building_initramfs
-configuring_system
-installing_bootloader
-configuring_users
-fixing_permissions
-downloading_additional_packages
-"
-
-len=$(echo "$steps" | wc -l)
-i=0
-
-echo "Press [return] to enter configuration"
-read response
-
-for step in $steps; do
- i=$((i+1))
- clear
- hbar -t -T "$(echo $step | sed "s/_/ /g")" $i $len
- $step
-done
-
-echo "Installation finished!"
diff --git a/scripts/installer.sh b/scripts/installer.sh
deleted file mode 100755
index 589574d..0000000
--- a/scripts/installer.sh
+++ /dev/null
@@ -1,306 +0,0 @@
-#!/bin/sh
-
-. /usr/lib/xitui.sh
-. /usr/lib/glyphs.sh
-. /usr/lib/colors.sh
-
-logfile="installer.log"
-default_packages="base linux xipkg dracut grub mksh sudo neofetch vim tzdata"
-additional_services="networkmanager xorg iwd"
-
-list_disks () {
- lsblk -r | while read -r line; do
- set - $line
- [ "$6" = "disk" ] && {
- printf '"/dev/%s (%s)" ' $1 $4
- }
- done
-}
-
-list_partitions () {
- ls $1*
- echo "none"
-}
-
-partition_disk () {
- t_msg "Partitioning $1..."
- export EFI_PART=$11
- export SYS_PART=$12
- export SWAP_PART=none
- echo "
- unit: sectors
- sector-size: 512
-
- type=ef, start=2048, size=210000
- type=83
- " | sfdisk $1 >$logfile &&
- t_msg "Partitioned $1!"
-}
-
-partition_disks () {
- eval "t_radio 'Select install disk' $(list_disks)"
- local selected=$(echo $T_RESULT | cut -d' ' -f1)
-
- t_yesno "${BLUE}Auto-partition $selected disk?\n${RED}(Warning: existing data will be overwritten)" && {
- partition_disk $selected || return 1
- } || {
- cfdisk $selected && {
- t_radio 'Select primary system partition' $(list_partitions $selected)
- export SYS_PART=$T_RESULT
-
- t_radio 'Select efi system partition' $(list_partitions $selected)
- export EFI_PART=$T_RESULT
-
- t_radio 'Select swap partition' $(list_partitions $selected)
- export SWAP_PART=$T_RESULT
- }
- }
-}
-
-format_disks () {
- t_msg "Formatting partitions...
-${TABCHAR}System Partition
-${TABCHAR}EFI Partition
-"
-
-
- [ -b "$SYS_PART" ] && mkfs.ext4 $SYS_PART > $logfile
- t_msg "Formatting partitions...
-${GREEN}${TABCHAR}System partition ${CHECKMARK} (ext4)
-${TABCHAR}EFI Partition
-"
-
- [ -b "$EFI_PART" ] && mkfs.fat -F 32 $EFI_PART > $logfile
- t_msg "Formatting partitions...
-${GREEN}${TABCHAR}System partition ${CHECKMARK} (ext4)
-${GREEN}${TABCHAR}EFI Partition ${CHECKMARK} (fat32)
-"
-
- [ -b "$SWAP_PART" ] && mkswap $SWAP_PART > $logfile
- return 0
-}
-
-mount_disks () {
- t_msg "Mounting disks..."
- export sysroot=/xilinux.mnt
- export efi_mntpoint=/xilinux.mnt/boot/efi
-
- [ ! -f "$sysroot" ] && mkdir -p $sysroot
-
- [ -b "$SYS_PART" ] && {
- mount $SYS_PART $sysroot
- } || {
- t_prompt "${RED}No system partition is available!"
- return 1
- }
-
- [ -b "$EFI_PART" ] && {
- mkdir -p $efi_mntpoint
- mount $EFI_PART $efi_mntpoint
- }
-
- [ -b "$SWAP_PART" ] && swapon $SWAP_PART
- return 0
-}
-
-bootstrap_system () {
- t_msg "Creating directories..."
- xi -vy -r $sysroot bootstrap >> $logfile
-}
-
-install_base () {
- t_msg "Installing packages..."
- xi -vy -r $sysroot sync >> $logfile
- xi -vy -r $sysroot install $default_packages >> $logfile
-}
-
-copy_resolvconf () {
- [ ! -d $sysroot/etc ] && mkdir $sysroot/etc
- cp /etc/resolv.conf $sysroot/etc/resolv.conf
-}
-
-sync_system () {
- t_msg "Syncing system..."
- xichroot $sysroot xi sync >> $logfile
-}
-
-generate_fstab () {
- t_msg "Generating fstab..."
- xichroot $sysroot genfstab -U / > $sysroot/etc/fstab
-}
-
-build_initramfs () {
- t_msg "Build initramfs"
-
- kernel_version=$(ls $SYSROOT/usr/lib/modules | tail -1)
-
- mkdir -p $sysroot/var/tmp
- xichroot $sysroot dracut --kver $kernel_version 2>&1 >> $logfile
-}
-
-install_grub () {
- t_yesno "Install grub?" && {
- target="x86_64-efi"
- opts="--target=$target --efi-directory=$efi_mntpoint"
-
- t_yesno "Install as removable system?" && opts="$opts --removable"
-
- t_msg "Installing grub for target $target..."
- xichrooot $sysroot grub-install $opts >> $logfile
-
- t_msg "Creating grub configuration..."
- xichrooot $sysroot grub-mkconfig -o /boot/grub/grub.cfg
- } || return 0
-}
-
-enter_password () {
- export password=""
- t_input_hidden "Enter Password:"
- passwd=$T_RESULT
- t_input_hidden "Confirm Password:"
- local cpasswd=$T_RESULT
-
- [ "$passwd" = "$cpasswd" ] || {
- t_prompt "Passwords do not match!"
- enter_password
- }
-
-}
-
-configure_users () {
- t_input_cmd "xichroot $sysroot passwd" "Enter root password"
-
- t_input "Enter username:"
- local username=$T_RESULT
- enter_password
-
- t_msg "Creating user..."
- xichroot $sysroot useradd -s /bin/mksh -m $username
- printf "$passwd\n$passwd\n" | xichroot $sysroot passwd $username
-
- t_yesno "Allow this user to use sudo?" && {
- echo "$username ALL=(ALL:ALL) ALL" >> $sysroot/etc/sudoers
- }
-
- t_yesno "Set a password for the root user?" && {
- enter_password
- printf "$passwd\n$passwd\n" | xichroot $sysroot passwd
- }
-
- return 0
-}
-
-fix_permissions () {
- xichroot $sysroot chmod 755 /
- xichroot $sysroot chmod 755 /usr
- xichroot $sysroot chmod 755 /usr/bin
- xichroot $sysroot chmod 755 /usr/lib
-}
-
-set_timezone () {
- zoneinfo="$sysroot/usr/share/zoneinfo"
- cp $zoneinfo/$1 $sysroot/etc/localtime
- echo "$1" > /etc/timezone
-
- t_cls_ptrn
- t_prompt "Successfully set timezone!"
-}
-
-select_timezone () {
- t_clean_ptrn
- zoneinfo="$sysroot/usr/share/zoneinfo"
- selection=$1
- t_paged_radio "Select your timezone: $selection" $(ls "$zoneinfo/$selection") "more..."
- []
- selection="$selection/$T_RESULT"
-
- [ -f "$zoneinfo/$selection" ] && {
-
- t_yesno "Use $selection as your system timezone? " && {
- set_timezone $selection
- } || {
- select_timezone
- }
- return 0
- }
-
- [ -d "$zoneinfo/$selection" ] && {
- select_timezone $selection
- } || {
- t_prompt "The timezone you entered does not exist!"
- select_timezone
- }
-}
-
-install_additional () {
- t_check "Install and configure additional services: " $additional_services
- local services=$T_RESULT
-
- for service in $services; do
- service_$service
- done
-}
-
-service_networkmanager () {
- t_msg "Installing NetworkManager..."
- {
- xi -ly -r $sysroot install networkmanager
- xichroot $sysroot rc-update add networkmanager
- } >> $logfile
-}
-
-service_iwd () {
- t_msg "Installing iwd..."
- {
- xi -ly -r $sysroot install iwd
- xichroot $sysroot rc-update add iwd
- } >> $logfile
-}
-
-service_xorg () {
- t_msg "Installing xorg..."
- xi -r $sysroot install base-xorg base-fonts >> $logfile
- t_check "Select video drivers:" $(xi search xd86-video- | cut -f2 -d/)
- [ "${#T_RESULT}" != "0" ] && xi -r $sysroot install $T_RESULT
- t_prompt "Installed basic xorg functionality
-TODO: preconfigured window managers, for now you need to configure them yourself"
-}
-
-
-umount_disks () {
- umount -R $sysroot
- [ -b "$SWAP_PART" ] && swapoff $SWAP_PART
- return 0
-}
-
-t_init
-t_no_cur
-checkroot
-
-steps="partition_disks
-format_disks
-mount_disks
-bootstrap_system
-install_base
-copy_resolvconf
-sync_system
-generate_fstab
-build_initramfs
-configure_users
-fix_permissions
-select_timezone
-install_additional
-umount_disks
-"
-
-for step in $steps; do
- t_cls_ptrn
- $step 2>> $logfile || {
- t_prompt "${RED}An error occured!"
- t_clean
- exit 1
- }
-done
-t_prompt "Completed install!"
-
-t_clean
diff --git a/scripts/mkiso.sh b/scripts/mkiso.sh
deleted file mode 100755
index 264b802..0000000
--- a/scripts/mkiso.sh
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/bin/sh
-
-ISO_NAME="xilinux-$(date -u +%Y%m%d)"
-ISO_LABEL="xilinux"
-PUBLISHER="davidovski"
-SYSLINUX_VER=6.04-pre1
-
-XI_ARGS=""
-
-chroot=/tmp/chroot
-isoroot=/tmp/iso
-iso_pkgs="linux linux-firmware base dracut grub bash xipkg squashfs-tools lvm2 cryptsetup networkmanager stty"
-
-create_basesystem () {
- xi $XI_ARGS sync
- xi $XI_ARGS -r "$chroot" bootstrap
- xi $XI_ARGS -r "$chroot" install "$iso_pkgs"
-
- cat > $chroot/etc/resolv.conf << EOF
-nameserver 80.80.80.80
-EOF
-
- hostname=xilinux
- echo xilinux > $chroot/etc/hostname
-
- cat > $chroot/etc/hosts << EOF
-127.0.0.1 localhost
-::1 localhost
-127.0.1.1 $hostname.local $hostname
-EOF
-
- xichroot $SYSROOT passwd
-
- xichroot "$chroot"
-}
-
-build_initramfs () {
- kernel_version=$(ls $chroot/usr/lib/modules | tail -1)
- mkdir -p "$chroot"/var/tmp
- xichroot "$chroot" dracut --nomdadmconf --nolvmconf --xz --add dmsquash-live --add bash --add convertfs --add pollcdrom --force --kver $kernel_version
-}
-
-create_isoroot() {
- mkdir -p $isoroot/
- cp $chroot/boot/vmlinuz-** $isoroot/vmlinuz
- cp $chroot/boot/initramfs-** $isoroot/initrd.img
-
- mkdir -p $isoroot/isolinux
-}
-
-install_syslinux () {
- curl https://mirrors.edge.kernel.org/pub/linux/utils/boot/syslinux/Testing/$(echo $SYSLINUX_VER | cut -d'-' -f1)/syslinux-$SYSLINUX_VER.tar.xz > syslinux-$SYSLINUX_VER.tar.xz
-
- tar -C /tmp -xf syslinux-$SYSLINUX_VER.tar.xz
- #cp syslinux-$SYSLINUX_VER
- cp /tmp/syslinux-$SYSLINUX_VER/bios/core/isolinux.bin $isoroot/isolinux/isolinux.bin
- cp /tmp/syslinux-$SYSLINUX_VER/bios/com32/elflink/ldlinux/ldlinux.c32 $isoroot/isolinux/ldlinux.c32
-}
-
-build_iso () {
- cat > $isoroot/isolinux/isolinux.cfg << EOF
-default 1
-
-label 1
- kernel /vmlinuz
- append initrd=/initrd.img splash console=tty0 console=ttyS0,9600 root=live:CDLABEL=xilinux rd.live.dir=/ rd.live.squashimg=filesystem.squashfs rd.live.debug=1
-
-
-
-EOF
-
- mksquashfs $chroot $isoroot/filesystem.squashfs -noappend -no-progress -e "/proc/*" -e "/dev/*" -e "/sys/*"
- genisoimage -r -V "$ISO_LABEL" -cache-inodes -J -l \
- -allow-limited-size -udf \
- -b isolinux/isolinux.bin -c isolinux/boot.cat \
- -no-emul-boot -boot-load-size 4 -boot-info-table \
- -p "$PUBLISHER <xi@davidovski.xyz>" \
- -A "$ISO_LABEL" -o "$ISO_NAME.iso" $isoroot
-}
-
-
-[ "$#" = 0 ] && {
- create_basesystem
- build_initramfs
- create_isoroot
- install_syslinux
- build_iso
-} || {
- for task in $*; do
- $task
- done
-}