diff options
Diffstat (limited to 'src/core/procedures/base~')
-rw-r--r-- | src/core/procedures/base~ | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/src/core/procedures/base~ b/src/core/procedures/base~ new file mode 100644 index 0000000..74d6c00 --- /dev/null +++ b/src/core/procedures/base~ @@ -0,0 +1,161 @@ +#!/bin/bash + +var_DEFAULTFS="/boot:32:ext2:+ swap:256:swap /:7500:ext3 /home:*:ext3" +var_TARGET_DIR="/mnt" +var_RUNTIME_PACKAGES= +var_PKG_FILE=/home/arch/fifa/runtime/package-list +var_UI_TYPE="cli" # set to cli or dia for dialog + +###### Phases ( can be overridden by more specific procedures) ###### + +phase_preparation () +{ + execute worker select_source + execute worker runtime_network + execute worker runtime_packages +} + + +phase_basics () +{ + execute worker set_clock + execute worker prepare_disks +} + + +phase_system () +{ + execute worker package_list + execute worker install_packages + execute worker auto_fstab #TODO: exact names of these 3 + execute worker auto_network + execute worker auto_locale + execute worker configure_system + execute worker mkinitcpio + execute worker locales + execute worker install_bootloader +} + + +phase_finish () +{ + true +} + + + +###### Workers ( can be overridden by more specific procedures) ###### +worker_select_source () +{ + var_PKG_SOURCE_TYPE='cd' + var_FILE_URL="file:///src/core/pkg" + var_SYNC_URL= + var_MIRRORLIST="/etc/pacman.d/mirrorlist" + # if you override to use ftp (or ask user and he chooses ftp) don't forget to configure the network and to select_mirrors +} + + +worker_runtime_network () +{ + #network is assumed to be functional for now because we do it first with /arch/setup. once that falls away, we'll need to implement it here + true +} + + +worker_runtime_packages () +{ + for pkg in $var_RUNTIME_PACKAGES + do + $PACMAN -Sy --noconfirm --needed $pkg + done +} + + +worker_set_clock () +{ + HARDWARECLOCK=utc + TIMEZONE=`tzselect` + HWCLOCK_PARAMS=" --utc" + if [ "$TIMEZONE" != "" -a -e "/usr/share/zoneinfo/$TIMEZONE" ] + then + cp "/usr/share/zoneinfo/$TIMEZONE" /etc/localtime + fi + /sbin/hwclock --hctosys $HWCLOCK_PARAMS --noadjfile + #TODO: user must set date/time and store it +} + + +worker_prepare_disks () +{ + partition # use lib-archboot function by default + # in official installer: autoprepare or diy first partitions, then mountpoints +} + + +# Put the list of packages to be installed in $var_PKG_FILE +worker_package_list () +{ + #TODO: sensible list of packages + true +} + + +worker_install_packages () +{ + target_special_fs on + target_prepare_pacman + [ ! -f $var_PKG_FILE ] && die_error "No package file available!" + PKGLIST=`cat $var_PKG_FILE` + #TODO: what if $var_PKG_FILE is empty? we should die_error because that's probably not what the user wants.. or can it? will pacman complain? + $PACMAN_TARGET -Sy $PKGLIST || die_error "Package installation FAILED." + target_special_fs off +} + + +worker_auto_fstab () +{ + if [ "$S_MKFS" = "1" -o "$S_MKFSAUTO" = "1" ]; then + target_configure_fstab + fi +} + + +worker_auto_network () +{ + [ "$S_DHCP" = 1 ] && target_configure_network dhcp "$PROXY_HTTP" "$PROXY_FTP" + [ "$S_DHCP" != 1 ] && target_configure_network fixed "$PROXY_HTTP" "$PROXY_FTP" +} + + +worker_auto_locale () +{ + target_configure_inital_locale +} + + +worker_configure_system () +{ + #TODO: what to do here? + true +} + + +worker_mkinitcpio () +{ + #TODO:check that this is the right command when projects.archlinux.org is back up + run_mkinitcpio +} + + +worker_locales () +{ + #TODO:what to do here? didn't we already do them? + true +} + + +worker_install_bootlader () +{ + #TODO: ask which disk, install grub on it + true +} |