summaryrefslogtreecommitdiff
path: root/src/core/procedures/base
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/procedures/base')
-rw-r--r--src/core/procedures/base143
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
+}