Redesign of grml-live(8)
========================

Name
----

(Re-)Design of grml-live

Synopsis
--------

None.

Description
-----------

grml-live mainly executes the following main stages:

* fai dirinstall: link:http://fai-project.org/[FAI] (Fully
Automatic Installation) does the chroot related work

* mksquashfs: generate the compressed squashfs file which provides the chroot in
compressed format

* mkisofs: generates the ISO itself, based on the output by mksquashfs and some
further bootmanger related stuff

This document describes the planned design for a re-implementation of
grml-live in Python.

[NOTE]

This document is work in progress. Seriously.

grml-live interface
-------------------

The grml-live interface itself (no matter whether text based or a graphical
interface) uses the provided mechanisms by lib-grml-live.

lib-grml-live
-------------

Helper Functions:

* log(): log into syslog, /var/log/grml-live.log
* console_info(): display information on plain console
* usage(): display usage information

Validation:

* check_permissions(): check for id == 0
* check_diskspace(): check for enough free space(?)
* check_programms(): check for all the necessary tools

Configuration handling:

* parse_config_files(mainconfig=/etc/grml/grml-live.conf, localconfig=/etc/grml/grml-live.local): read /etc/grml/grml-live.local and /etc/grml/grml-live.conf
* cmdline_opts(): parse commandline, overrides configuration from parse_config()
* update_config_files(): write active configuration to configuration files (like ${GRML_FAI_CONFIG}/apt/sources.list)

Installation of files:

* install_chroot(): execute 'fai dirinstall'
* install_bootmanager(): install bootmanager (grub and/or isolinux)
* install_initrd(): install initrd from chroot into booting area
* install_kernel(): install kernel from chroot into booting area
* install_addons(): install addons into booting area
* install_bootsplash(): install bootsplash (image)
* install_bootmessages(): install bootmessages
* install_windows_binaries(): install windows (related) binaries

Create ISO:

* create_squashfs(): execute mksquashfs
* create_md5sums(): create md5sums
* create_iso(): execute mkisofs
