#!/bin/zsh
# Filename:      /etc/init.d/grml-autoconfig
# Purpose:       basic system configuration and hardware setup for grml system
# Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
# Bug-Reports:   see http://grml.org/bugs/
# License:       This file is licensed under the GPL v2.
################################################################################

# http://wiki.debian.org/LSBInitScripts =>
### BEGIN INIT INFO
# Provides:          grml-autoconfig
# Required-Start:    $remote_fs
# Required-Stop:     $remote_fs
# Should-Start:      udev
# Default-Start:     S 2 3 4 5
# Default-Stop:
### END INIT INFO

# {{{ placeholder functions for restart/reload/stop
if [[ $1 == "restart" ]] ; then
  echo "$0 restart - empty placeholder. Doing nothing but running."
fi

if [[ $1 == "force-reload" ]] ; then
  echo "$0 force-reload - empty placeholder. Doing nothing but running."
fi

if [[ $1 == "stop" ]] ; then
  echo "$0 stop - empty placeholder. Doing nothing but exiting."
  exit 1
fi
# }}}

# {{{ path, signals, umask, zsh, colors
export PATH="/bin:/sbin:/usr/bin:/usr/sbin"
umask 022
# Ignore these signals: INT, TERM, SEGV
trap "" 2 3 11

# zsh stuff
setopt no_nomatch # avoid 'no matches found: ...'
# }}}

# {{{ source main files
source /etc/grml/autoconfig            # configuration file
source /etc/grml/autoconfig.functions  # functions
source /etc/grml/lsb-functions         # helper functions for smart display
# }}}

# {{{ mount important directories
mount_proc
mount_pts
mount_sys
# }}}

# {{{ main grml-autoconfig
# make sure symlink /etc/mtab exists, this is usually handled by
# /etc/init.d/checkroot.sh but we don't execute this script on the live system
if [ -z "$INSTALLED" ] ; then
  ln -sf /proc/mounts /etc/mtab
fi

checkvalue $CONFIG_SYSLOG && config_syslog

if checkbootparam 'forensic' ; then
   ewarn "Bootopion forensic found. Important notice:" ; eend 0
   ewarn " Do *NOT* boot with something like 'grml forensic ...' but always use 'forensic ...' instead!" ; eend 0
fi

checkvalue $CONFIG_LANGUAGE && config_language

checkvalue $CONFIG_LOG && config_log

checkvalue $CONFIG_HOSTNAME && config_hostname

checkvalue $CONFIG_TIME && config_time

checkvalue $CONFIG_KERNEL &&  config_kernel

checkvalue $CONFIG_SECUREBOOT && config_secureboot

checkvalue $CONFIG_TIMEZONE && config_timezone

checkvalue $CONFIG_SWRAID && config_swraid

checkvalue $CONFIG_DMRAID && config_dmraid

checkvalue $CONFIG_LVM && config_lvm

checkvalue $CONFIG_TESTCD && config_testcd

checkvalue $CONFIG_BRLTTY && config_brltty

checkvalue $CONFIG_ACPI && config_acpi

checkvalue $CONFIG_FSTAB && config_fstab

checkvalue $CONFIG_CPU && config_cpu

checkvalue $CONFIG_SSH && config_ssh

checkvalue $CONFIG_VNC && config_vnc

checkvalue $CONFIG_PASSWD && config_passwd

checkvalue $CONFIG_EXTRACT  && config_extract

checkvalue $CONFIG_FINDDCSDIR && config_finddcsdir

checkvalue $CONFIG_DEBS && config_debs

checkvalue $CONFIG_CONFIG && config_config

checkvalue $CONFIG_SCRIPTS && config_scripts

checkvalue $CONFIG_FINDDCSDIR && config_umount_dcsdir

checkvalue $CONFIG_PARTCONF && config_partconf

checkvalue $CONFIG_MIXER && config_mixer

checkvalue $CONFIG_GPM && config_gpm

checkvalue $CONFIG_SERVICES && config_services

checkvalue $CONFIG_DEBNET && config_debnet

checkvalue $CONFIG_DISPLAY_SSH_FINGERPRINTS && config_display_ssh_fingerprints

checkvalue $CONFIG_NETCONFIG && config_netconfig

checkvalue $CONFIG_NETSCRIPT && config_netscript

checkvalue $CONFIG_CONSOLE && config_console

checkvalue $CONFIG_VIRTUALBOX_SHARED_FOLDERS && config_virtualbox_shared_folders

checkvalue $CONFIG_MYPATH && config_mypath

checkvalue $CONFIG_DISTRI && config_distri

checkvalue $CONFIG_BLANKING && config_blanking

checkvalue $CONFIG_DEBOOTSTRAP && config_debootstrap

checkvalue $CONFIG_XSTARTUP && config_x_startup
# }}}

# {{{ Re-enable signals
trap 2 3 11
# }}}

exit 0

## END OF FILE #################################################################
# vim:foldmethod=marker
