Cleanup variable declaration, allow unbound
This commit is contained in:
parent
c8d36a73ab
commit
9351190609
@ -5,210 +5,77 @@
|
|||||||
# Some ideas and code reworked from other resources
|
# Some ideas and code reworked from other resources
|
||||||
# AIF, Cnichi, Calamares, Arch Wiki.. Credit where credit is due
|
# AIF, Cnichi, Calamares, Arch Wiki.. Credit where credit is due
|
||||||
|
|
||||||
|
VER=2.0.72
|
||||||
# linux distributor, if unset will be ArchLabs
|
|
||||||
# this can be set in the environment prior to install, eg.
|
|
||||||
#
|
|
||||||
# $ DIST="My Distro" archlabs-installer
|
|
||||||
#
|
|
||||||
# will result in "My Distro Linux" used where needed
|
|
||||||
: ${DIST="ArchLabs"}
|
|
||||||
|
|
||||||
VER="2.0.71" # installer version
|
|
||||||
MNT="/mnt" # install mountpoint
|
|
||||||
ANS="/tmp/ans" # dialog answer file
|
|
||||||
|
|
||||||
# ------------------------------------------------------ #
|
|
||||||
# When manually mounting your partitions, you need
|
|
||||||
# to set these values to avoid using the mount menu.
|
|
||||||
# ------------------------------------------------------ #
|
|
||||||
|
|
||||||
# root partition, eg. /dev/sda2
|
|
||||||
ROOT_PART=''
|
|
||||||
|
|
||||||
# boot partition, required on UEFI eg. /dev/sda1
|
|
||||||
BOOT_PART=''
|
|
||||||
|
|
||||||
# boot device, used for some bootloaders eg. /dev/sda
|
|
||||||
BOOT_DEV=''
|
|
||||||
|
|
||||||
# bootloader to use, can be:
|
|
||||||
# UEFI: grub, syslinux, efistub, systemd-boot, refind-efi
|
|
||||||
# BIOS: grub, syslinux
|
|
||||||
BOOTLDR=''
|
|
||||||
|
|
||||||
# directory to mount the boot partition (if any) for most bootloaders
|
|
||||||
# this will need to be 'boot' however a popular one for grub is 'boot/efi'
|
|
||||||
BOOTDIR='boot'
|
|
||||||
|
|
||||||
# ------------------------------------------------------ #
|
|
||||||
|
|
||||||
# bulk default values {
|
# bulk default values {
|
||||||
|
|
||||||
# these values will be selected during the install, it is not recommended
|
: ${DIST=ArchLabs} # distro name if not set
|
||||||
# to edit them here unless you know what you're doing.
|
MNT=/mnt # install mountpoint
|
||||||
|
ANS=/tmp/ans # dialog answer file
|
||||||
|
BOOTDIR=boot # location to mount boot partition
|
||||||
|
FONT=ter-i16n # font used for the linux console
|
||||||
|
HOOKS=shutdown # list of additional mkinitcpio HOOKS
|
||||||
|
SEL=0 # currently selected menu item
|
||||||
|
SYS=Unknown # bios type to be determined: UEFI/BIOS
|
||||||
|
ERR=/tmp/errlog # error log used internally
|
||||||
|
DBG=/tmp/debuglog # debug log when passed -d
|
||||||
|
RUN=/run/archiso/bootmnt/arch/boot # path for live system /boot
|
||||||
|
VM="$(dmesg | grep -i hypervisor)" # system running in a virtual machine
|
||||||
|
export DIALOGOPTS="--cr-wrap" # see `man dialog`
|
||||||
|
|
||||||
SWAP_PART='' # swap partition or file path
|
|
||||||
SWAP_SIZE='' # swap size, only used when creating a swapfile
|
|
||||||
|
|
||||||
EXMNT='' # holder for additional partitions while mounting
|
|
||||||
EXMNTS='' # when an extra partition is mounted append it's info
|
|
||||||
|
|
||||||
FONT="ter-i16n" # font used for the linux console
|
|
||||||
HOOKS="shutdown" # list of additional HOOKS to add in /etc/mkinitcpio.conf
|
|
||||||
|
|
||||||
LOGIN_TYPE='' # login manager can be: lightdm, xinit, ly
|
|
||||||
LOGIN_WM='' # default login session to be placed in ~/.xinitrc
|
|
||||||
LOGINRC='' # login shell rc file, eg. .zprofile, .bash_profile, .profile
|
|
||||||
AUTOLOGIN='' # enable autologin for xinit
|
|
||||||
|
|
||||||
INSTALL_WMS='' # space separated list of chosen wm/de
|
|
||||||
|
|
||||||
WM_PKGS='' # list of packages added during wm/de choice (not user edited)
|
|
||||||
PACKAGES='' # list of all packages to install including WM_PKGS (not user edited)
|
|
||||||
USER_PKGS='' # packages selected by the user during install
|
|
||||||
|
|
||||||
NEWUSER='' # username for the new user
|
|
||||||
USER_PASS='' # new user's password
|
|
||||||
ROOT_PASS='' # root password
|
|
||||||
|
|
||||||
KERNEL='' # linux kernel, can be: linux, linux-lts, linux-zen, or linux-hardened
|
|
||||||
MYSHELL='' # shell to use for the system, eg. zsh
|
|
||||||
UCODE='' # cpu microcode (if any), can be: amd-ucode, intel-ucode
|
|
||||||
|
|
||||||
LUKS='' # empty when not using encryption
|
|
||||||
LUKS_DEV='' # boot parameter string for LUKS
|
|
||||||
LUKS_PART='' # partition used for encryption
|
|
||||||
LUKS_PASS='' # encryption password
|
|
||||||
LUKS_UUID='' # encrypted partition UUID
|
|
||||||
LUKS_NAME='' # name used for encryption
|
|
||||||
|
|
||||||
LVM='' # empty when not using lvm
|
|
||||||
LVM_PARTS='' # partitions used for volume group
|
|
||||||
VGROUP_MB=0 # available space in volume group
|
|
||||||
|
|
||||||
WARN='' # issued mounting/partitioning warning
|
|
||||||
SEP_BOOT='' # separate boot partition for BIOS
|
|
||||||
CONFIG_DONE='' # basic configuration is finished
|
|
||||||
|
|
||||||
FORMATTED='' # partitions we formatted and should allow skipping
|
|
||||||
AUTO_ROOT_PART='' # root value from auto partition
|
|
||||||
AUTO_BOOT_PART='' # boot value from auto partition
|
|
||||||
|
|
||||||
SEL=0 # currently selected menu item
|
|
||||||
ERR="/tmp/errlog" # error log used internally
|
|
||||||
DBG="/tmp/debuglog" # debug log when passed -d
|
|
||||||
RUN="/run/archiso/bootmnt/arch/boot" # path for live system /boot
|
|
||||||
VM="$(dmesg | grep -i "hypervisor")" # system running in a virtual machine
|
|
||||||
SYS='Unknown' # bios type to be determined: UEFI/BIOS
|
|
||||||
export DIALOGOPTS="--cr-wrap" # see `man dialog`
|
|
||||||
|
|
||||||
# baseline
|
|
||||||
BASE_PKGS="base-devel xorg xorg-drivers sudo git gvfs gtk3 libmad libmatroska "
|
BASE_PKGS="base-devel xorg xorg-drivers sudo git gvfs gtk3 libmad libmatroska "
|
||||||
BASE_PKGS+="tumbler playerctl pulseaudio pulseaudio-alsa pavucontrol pamixer scrot "
|
BASE_PKGS+="tumbler playerctl pulseaudio pulseaudio-alsa pavucontrol pamixer scrot "
|
||||||
BASE_PKGS+="xdg-user-dirs ffmpeg gstreamer gst-libav gst-plugins-base gst-plugins-good"
|
BASE_PKGS+="xdg-user-dirs ffmpeg gstreamer gst-libav gst-plugins-base gst-plugins-good"
|
||||||
|
|
||||||
# archlabs base
|
|
||||||
AL_BASE_PKGS="archlabs-skel-base archlabs-fonts archlabs-themes "
|
AL_BASE_PKGS="archlabs-skel-base archlabs-fonts archlabs-themes "
|
||||||
AL_BASE_PKGS+="archlabs-icons archlabs-wallpapers archlabs-scripts archlabs-baph"
|
AL_BASE_PKGS+="archlabs-icons archlabs-wallpapers archlabs-scripts archlabs-baph"
|
||||||
|
|
||||||
# extras for window managers
|
|
||||||
WM_BASE_PKGS="arandr archlabs-networkmanager-dmenu nitrogen polkit-gnome "
|
WM_BASE_PKGS="arandr archlabs-networkmanager-dmenu nitrogen polkit-gnome "
|
||||||
WM_BASE_PKGS+="volumeicon xclip exo laptop-detect xdotool compton wmctrl feh "
|
WM_BASE_PKGS+="volumeicon xclip exo laptop-detect xdotool compton wmctrl feh "
|
||||||
WM_BASE_PKGS+="gnome-keyring dunst gsimplecal xfce4-power-manager xfce4-settings"
|
WM_BASE_PKGS+="gnome-keyring dunst gsimplecal xfce4-power-manager xfce4-settings"
|
||||||
|
|
||||||
# }
|
|
||||||
|
|
||||||
# giant ugly variable container :P {
|
|
||||||
|
|
||||||
# system RAM in MB
|
|
||||||
SYS_MEM="$(awk '/MemTotal/ {print int($2 / 1024) "M"}' /proc/meminfo)"
|
SYS_MEM="$(awk '/MemTotal/ {print int($2 / 1024) "M"}' /proc/meminfo)"
|
||||||
|
|
||||||
# locales from /etc/locale.gen
|
|
||||||
LOCALES="$(awk '/\.UTF-8/ {gsub(/# .*|#/, ""); if ($1) {print $1 " - "}}' /etc/locale.gen)"
|
LOCALES="$(awk '/\.UTF-8/ {gsub(/# .*|#/, ""); if ($1) {print $1 " - "}}' /etc/locale.gen)"
|
||||||
|
|
||||||
# console keyboard mappings
|
|
||||||
CMAPS="$(find /usr/share/kbd/keymaps -name '*.map.gz' | awk '{gsub(/\.map\.gz|.*\//, ""); print $1 " - "}' | sort)"
|
CMAPS="$(find /usr/share/kbd/keymaps -name '*.map.gz' | awk '{gsub(/\.map\.gz|.*\//, ""); print $1 " - "}' | sort)"
|
||||||
|
|
||||||
# terminal size
|
|
||||||
[[ $LINES ]] || LINES=$(tput lines)
|
[[ $LINES ]] || LINES=$(tput lines)
|
||||||
[[ $COLUMNS ]] || COLUMNS=$(tput cols)
|
[[ $COLUMNS ]] || COLUMNS=$(tput cols)
|
||||||
|
|
||||||
# associative arrays
|
# }
|
||||||
# {
|
|
||||||
|
|
||||||
# commands used to install each bootloader, however most get modified during runtime {
|
# commands used to install each bootloader, however most get modified during runtime {
|
||||||
declare -A BCMDS=(
|
declare -A BCMDS=(
|
||||||
[refind-efi]='refind-install' # minor modification
|
[refind-efi]='refind-install'
|
||||||
[grub]='grub-install --recheck --force' # heavily modified
|
[grub]='grub-install --recheck --force' [syslinux]='syslinux-install_update -i -a -m'
|
||||||
[syslinux]='syslinux-install_update -i -a -m' # modified on UEFI
|
[efistub]='efibootmgr -v -d /dev/sda -p 1 -c -l' [systemd-boot]='bootctl --path=/boot install'
|
||||||
[efistub]='efibootmgr -v -d /dev/sda -p 1 -c -l' # heavily modified
|
|
||||||
[systemd-boot]='bootctl --path=/boot install' # not modified
|
|
||||||
) # }
|
) # }
|
||||||
|
|
||||||
# executable name for each wm/de used in ~/.xinitrc {
|
# executable name for each wm/de used in ~/.xinitrc {
|
||||||
declare -A WM_SESSIONS=(
|
declare -A WM_SESSIONS=(
|
||||||
[dwm]='dwm'
|
[dwm]='dwm' [i3-gaps]='i3' [bspwm]='bspwm' [awesome]='awesome' [plasma]='startkde' [xfce4]='startxfce4'
|
||||||
[i3-gaps]='i3'
|
[gnome]='gnome-session' [fluxbox]='startfluxbox' [openbox]='openbox-session' [cinnamon]='cinnamon-session'
|
||||||
[bspwm]='bspwm'
|
|
||||||
[awesome]='awesome'
|
|
||||||
[plasma]='startkde'
|
|
||||||
[xfce4]='startxfce4'
|
|
||||||
[gnome]='gnome-session'
|
|
||||||
[fluxbox]='startfluxbox'
|
|
||||||
[openbox]='openbox-session'
|
|
||||||
[cinnamon]='cinnamon-session'
|
|
||||||
) # }
|
) # }
|
||||||
|
|
||||||
# packages installed for each wm/de, most are depends of the skel packages {
|
# packages installed for each wm/de, most are depends of the skel packages {
|
||||||
declare -A WM_EXT=(
|
declare -A WM_EXT=(
|
||||||
[dwm]='' # NA
|
[dwm]='' [gnome]='' [cinnamon]='gnome-terminal' [plasma]='kdebase-meta'
|
||||||
[gnome]='' # NA
|
[awesome]='archlabs-skel-awesome' [bspwm]='archlabs-skel-bspwm' [fluxbox]='archlabs-skel-fluxbox'
|
||||||
[cinnamon]='gnome-terminal' # doesn't install a terminal on it's own
|
[i3-gaps]='archlabs-skel-i3-gaps' [openbox]='archlabs-skel-openbox' [xfce4]='archlabs-skel-xfce4 xfce4-goodies'
|
||||||
[plasma]='kdebase-meta' # base plasma application set
|
|
||||||
[awesome]='archlabs-skel-awesome' # see deps of archlabs-skel-awesome
|
|
||||||
[bspwm]='archlabs-skel-bspwm' # see deps of archlabs-skel-bspwm
|
|
||||||
[fluxbox]='archlabs-skel-fluxbox' # see deps of archlabs-skel-fluxbox
|
|
||||||
[i3-gaps]='archlabs-skel-i3-gaps' # see deps of archlabs-skel-i3-gaps
|
|
||||||
[openbox]='archlabs-skel-openbox' # see deps of archlabs-skel-openbox
|
|
||||||
[xfce4]='archlabs-skel-xfce4 xfce4-goodies' # see deps of archlabs-skel-xfce4
|
|
||||||
) # }
|
) # }
|
||||||
|
|
||||||
# files offered for editing after install is complete {
|
# files offered for editing after install is complete {
|
||||||
declare -A EDIT_FILES=(
|
declare -A EDIT_FILES=(
|
||||||
[login]='' # login is populated once we know the username and shell
|
[login]='' # login is populated once we know the username and shell
|
||||||
[fstab]='/etc/fstab'
|
[fstab]='/etc/fstab' [sudoers]='/etc/sudoers' [crypttab]='/etc/crypttab' [pacman]='/etc/pacman.conf'
|
||||||
[sudoers]='/etc/sudoers'
|
[console]='/etc/vconsole.conf' [mkinitcpio]='/etc/mkinitcpio.conf' [hostname]='/etc/hostname /etc/hosts'
|
||||||
[crypttab]='/etc/crypttab'
|
|
||||||
[pacman]='/etc/pacman.conf'
|
|
||||||
[console]='/etc/vconsole.conf'
|
|
||||||
[mkinitcpio]='/etc/mkinitcpio.conf'
|
|
||||||
[hostname]='/etc/hostname /etc/hosts'
|
|
||||||
[bootloader]="/boot/loader/entries/$DIST.conf" # ** based on bootloader
|
[bootloader]="/boot/loader/entries/$DIST.conf" # ** based on bootloader
|
||||||
[locale]='/etc/locale.conf /etc/default/locale'
|
[locale]='/etc/locale.conf /etc/default/locale' [keyboard]='/etc/X11/xorg.conf.d/00-keyboard.conf /etc/default/keyboard'
|
||||||
[keyboard]='/etc/X11/xorg.conf.d/00-keyboard.conf /etc/default/keyboard'
|
|
||||||
) # }
|
) # }
|
||||||
|
|
||||||
# mkfs command and flags for filesystem formatting {
|
# mkfs command flags for filesystem formatting {
|
||||||
declare -A FS_CMDS=(
|
declare -A FS_CMD_FLAGS=(
|
||||||
[f2fs]='mkfs.f2fs'
|
[f2fs]='' [jfs]='-q' [xfs]='-f' [ntfs]='-q' [ext2]='-q' [ext3]='-q' [ext4]='-q' [vfat]='-F32' [nilfs2]='-q' [reiserfs]='-q'
|
||||||
[jfs]='mkfs.jfs -q'
|
|
||||||
[xfs]='mkfs.xfs -f'
|
|
||||||
[ntfs]='mkfs.ntfs -q'
|
|
||||||
[ext2]='mkfs.ext2 -q'
|
|
||||||
[ext3]='mkfs.ext3 -q'
|
|
||||||
[ext4]='mkfs.ext4 -q'
|
|
||||||
[vfat]='mkfs.vfat -F32'
|
|
||||||
[nilfs2]='mkfs.nilfs2 -q'
|
|
||||||
[reiserfs]='mkfs.reiserfs -q'
|
|
||||||
) # }
|
) # }
|
||||||
|
|
||||||
# mount options for each filesystem {
|
# mount options for each filesystem {
|
||||||
declare -A FS_OPTS=(
|
declare -A FS_OPTS=(
|
||||||
[vfat]='' # NA
|
[vfat]='' [ntfs]='' [ext2]='' [ext3]='' # NA
|
||||||
[ntfs]='' # NA
|
|
||||||
[ext2]='' # NA
|
|
||||||
[ext3]='' # NA
|
|
||||||
[jfs]='discard errors=continue errors=panic nointegrity'
|
[jfs]='discard errors=continue errors=panic nointegrity'
|
||||||
[reiserfs]='acl nolog notail replayonly user_xattr off'
|
[reiserfs]='acl nolog notail replayonly user_xattr off'
|
||||||
[ext4]='discard dealloc nofail noacl relatime noatime nobarrier nodelalloc'
|
[ext4]='discard dealloc nofail noacl relatime noatime nobarrier nodelalloc'
|
||||||
@ -219,10 +86,7 @@ declare -A FS_OPTS=(
|
|||||||
|
|
||||||
# packages installed for each login option {
|
# packages installed for each login option {
|
||||||
declare -A LOGIN_PKGS=(
|
declare -A LOGIN_PKGS=(
|
||||||
[xinit]='xorg-xinit'
|
[xinit]='xorg-xinit' [ly]='archlabs-ly' [gdm]='gdm' [sddm]='sddm'
|
||||||
[ly]='archlabs-ly'
|
|
||||||
[gdm]='gdm'
|
|
||||||
[sddm]='sddm'
|
|
||||||
[lightdm]='lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings accountsservice'
|
[lightdm]='lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings accountsservice'
|
||||||
) # }
|
) # }
|
||||||
|
|
||||||
@ -230,27 +94,13 @@ declare -A LOGIN_PKGS=(
|
|||||||
# if a package requires additional packages that aren't already dependencies
|
# if a package requires additional packages that aren't already dependencies
|
||||||
# they can be added here eg. [package]="extra"
|
# they can be added here eg. [package]="extra"
|
||||||
declare -A PKG_EXT=(
|
declare -A PKG_EXT=(
|
||||||
[vlc]='qt4'
|
[vlc]='qt4' [mpd]='mpc' [mupdf]='mupdf-tools'
|
||||||
[mpd]='mpc'
|
[rxvt-unicode]='urxvt-pearls' [zathura]='zathura-pdf-poppler' [noto-fonts]='noto-fonts-emoji' [cairo-dock]='cairo-dock-plug-ins' [qt5ct]='qt5-styleplugins'
|
||||||
[mupdf]='mupdf-tools'
|
[vlc]='qt5ct qt5-styleplugins' [qutebrowser]='qt5ct qt5-styleplugins' [qbittorrent]='qt5ct qt5-styleplugins' [transmission-qt]='qt5ct qt5-styleplugins'
|
||||||
[qt5ct]='qt5-styleplugins'
|
[bluez]='bluez-libs bluez-utils bluez-tools bluez-plugins bluez-hid2hci' [kdenlive]='kdebase-meta dvdauthor frei0r-plugins breeze breeze-gtk qt5ct qt5-styleplugins'
|
||||||
[rxvt-unicode]='urxvt-pearls'
|
|
||||||
[vlc]='qt5ct qt5-styleplugins'
|
|
||||||
[zathura]='zathura-pdf-poppler'
|
|
||||||
[noto-fonts]='noto-fonts-emoji'
|
|
||||||
[cairo-dock]='cairo-dock-plug-ins'
|
|
||||||
[qutebrowser]='qt5ct qt5-styleplugins'
|
|
||||||
[qbittorrent]='qt5ct qt5-styleplugins'
|
|
||||||
[transmission-qt]='qt5ct qt5-styleplugins'
|
|
||||||
[bluez]='bluez-libs bluez-utils bluez-tools bluez-plugins bluez-hid2hci'
|
|
||||||
[kdenlive]='kdebase-meta dvdauthor frei0r-plugins breeze breeze-gtk qt5ct qt5-styleplugins'
|
|
||||||
) # }
|
) # }
|
||||||
|
|
||||||
# }
|
# dialog text variables {
|
||||||
|
|
||||||
# dialog text variables
|
|
||||||
# {
|
|
||||||
|
|
||||||
# Basics (somewhat in order)
|
# Basics (somewhat in order)
|
||||||
_welcome="\nThis will help you get $DIST installed and setup on your system.\n\nIf you are unsure about a section the default option will be listed or\nthe first selected item will be the default.\n\n\nMenu Navigation:\n\n - Select items with the arrow keys or the option number.\n - Use [Space] to toggle check boxes and [Enter] to accept.\n - Switch between fields using [Tab] or the arrow keys.\n - Use [Page Up] and [Page Down] to jump whole pages\n - Press the highlighted key of an option to select it.\n"
|
_welcome="\nThis will help you get $DIST installed and setup on your system.\n\nIf you are unsure about a section the default option will be listed or\nthe first selected item will be the default.\n\n\nMenu Navigation:\n\n - Select items with the arrow keys or the option number.\n - Use [Space] to toggle check boxes and [Enter] to accept.\n - Switch between fields using [Tab] or the arrow keys.\n - Use [Page Up] and [Page Down] to jump whole pages\n - Press the highlighted key of an option to select it.\n"
|
||||||
_keymap="\nPick which keymap to use for the system from the list below\n\nThis is used once a graphical environment is running (Xorg).\n\nSystem default: us"
|
_keymap="\nPick which keymap to use for the system from the list below\n\nThis is used once a graphical environment is running (Xorg).\n\nSystem default: us"
|
||||||
@ -307,8 +157,6 @@ _lvmerrlvsize="\nInvalid value Entered.\n\nMust be a numeric value with 'M' (meg
|
|||||||
|
|
||||||
# }
|
# }
|
||||||
|
|
||||||
# }
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# selection menus
|
# selection menus
|
||||||
# main is the entry point which calls functions including outside of its block
|
# main is the entry point which calls functions including outside of its block
|
||||||
@ -961,8 +809,8 @@ part_format()
|
|||||||
local part="$1" fs="$2" delay="$3"
|
local part="$1" fs="$2" delay="$3"
|
||||||
|
|
||||||
msg "Format" "\nFormatting $part as $fs\n" 0
|
msg "Format" "\nFormatting $part as $fs\n" 0
|
||||||
${FS_CMDS[$fs]} "$part" >/dev/null 2>$ERR
|
mkfs.$fs ${FS_CMD_FLAGS[$fs]} "$part" >/dev/null 2>$ERR
|
||||||
errshow "${FS_CMDS[$fs]} $part" || return 1
|
errshow "mkfs.$fs ${FS_CMD_FLAGS[$fs]} "$part"" || return 1
|
||||||
FORMATTED+="$part "
|
FORMATTED+="$part "
|
||||||
sleep "${delay:-0}"
|
sleep "${delay:-0}"
|
||||||
}
|
}
|
||||||
@ -1368,13 +1216,11 @@ install_base()
|
|||||||
{
|
{
|
||||||
clear
|
clear
|
||||||
tput cnorm
|
tput cnorm
|
||||||
while kill -0 "$RSYNC_PID" 2>/dev/null || kill -0 "$MIRROR_PID" 2>/dev/null; do
|
while kill -0 $BG_PID 2>/dev/null; do
|
||||||
clear
|
clear; printf "\nA background install process is still running...\n"; sleep 1
|
||||||
printf "\nOne or more background install processes are still running...\n"
|
|
||||||
sleep 1
|
|
||||||
done
|
done
|
||||||
trap - EXIT
|
trap - EXIT
|
||||||
unset RSYNC_PID MIRROR_PID
|
unset BG_PID
|
||||||
|
|
||||||
rm -rf $MNT/etc/mkinitcpio-archiso.conf
|
rm -rf $MNT/etc/mkinitcpio-archiso.conf
|
||||||
find $MNT/usr/lib/initcpio -name 'archiso*' -type f -delete
|
find $MNT/usr/lib/initcpio -name 'archiso*' -type f -delete
|
||||||
@ -1397,7 +1243,6 @@ install_base()
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
[[ -e /run/archiso/sfs/airootfs && $KERNEL == 'linux' ]] && cp -vf $RUN/x86_64/vmlinuz $MNT/boot/vmlinuz-linux
|
[[ -e /run/archiso/sfs/airootfs && $KERNEL == 'linux' ]] && cp -vf $RUN/x86_64/vmlinuz $MNT/boot/vmlinuz-linux
|
||||||
|
|
||||||
[[ -d /etc/netctl ]] && cp -rfv /etc/netctl $MNT/etc/
|
[[ -d /etc/netctl ]] && cp -rfv /etc/netctl $MNT/etc/
|
||||||
[[ -f /etc/resolv.conf ]] && cp -fv /etc/resolv.conf $MNT/etc/
|
[[ -f /etc/resolv.conf ]] && cp -fv /etc/resolv.conf $MNT/etc/
|
||||||
[[ -e /etc/NetworkManager/system-connections ]] && cp -rvf /etc/NetworkManager/system-connections $MNT/etc/NetworkManager/
|
[[ -e /etc/NetworkManager/system-connections ]] && cp -rvf /etc/NetworkManager/system-connections $MNT/etc/NetworkManager/
|
||||||
@ -1659,13 +1504,9 @@ install_mirrorlist()
|
|||||||
|
|
||||||
install_background()
|
install_background()
|
||||||
{
|
{
|
||||||
msg "Background Install" "\nInstall will now begin in the background\n" 1
|
( rsync -a /run/archiso/sfs/airootfs/ $MNT/ && install_mirrorlist "$MNT/etc/pacman.d/mirrorlist" >/dev/null 2>&1 ) &
|
||||||
rsync -a /run/archiso/sfs/airootfs/ $MNT/ &
|
BG_PID=$!
|
||||||
RSYNC_PID=$!
|
trap "kill $BG_PID 2>/dev/null" EXIT
|
||||||
( install_mirrorlist "$MNT/etc/pacman.d/mirrorlist" ) &
|
|
||||||
MIRROR_PID=$!
|
|
||||||
# end the background processes before exiting
|
|
||||||
trap "kill $RSYNC_PID $MIRROR_PID 2>/dev/null" EXIT
|
|
||||||
}
|
}
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@ -2467,7 +2308,7 @@ net_connect()
|
|||||||
|
|
||||||
no_bg_install()
|
no_bg_install()
|
||||||
{
|
{
|
||||||
[[ $RSYNC_PID || $MIRROR_PID ]] || return 0
|
[[ $BG_PID ]] || return 0
|
||||||
msg "Install Running" "\nA background install process is currently running.\n" 2
|
msg "Install Running" "\nA background install process is currently running.\n" 2
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user