diff options
author | Dieter Plaetinck <dieter@plaetinck.be> | 2008-11-02 22:04:36 +0100 |
---|---|---|
committer | Dieter Plaetinck <dieter@plaetinck.be> | 2008-11-02 22:04:36 +0100 |
commit | 4019db7a540d6dfcef6431cfc11ca748595e2ca1 (patch) | |
tree | fc47df27708360c71699609f80d0b732b28412d8 /src/core/procedures/base | |
parent | c8a41a8f2afdb46e9da3bc9a677210b74b82eaab (diff) |
file hierarchy overhaul. now a structure that makes more sense: user and core separated. we now differentiate between procedures and libraries - no more "profiles" - + some bug fixed + probably quite a few introduced + runtime directory + separated my own stuff more
Diffstat (limited to 'src/core/procedures/base')
-rw-r--r-- | src/core/procedures/base | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/src/core/procedures/base b/src/core/procedures/base new file mode 100644 index 0000000..215af0a --- /dev/null +++ b/src/core/procedures/base @@ -0,0 +1,143 @@ +#!/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_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_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_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 () +{ +} + + +worker_auto_network () +{ +} + + +worker_auto_locale () +{ + +} + + +worker_configure_system () +{ + #TODO: what to do here? + true +} + + +worker_mkinitcpio () +{ +} + + +worker_locales () +{ +} + + +worker_install_bootlader () +{ + #TODO: ask which disk, install grub on it + true +} |