Merge remote-tracking branch 'origin/github/pr/145'
[grml-live.git] / etc / grml / fai / config / scripts / GRMLBASE / 15-initsetup
1 #!/bin/bash
2 # Filename:      ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/15-initsetup
3 # Purpose:       configure init system for the live-system
4 # Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
5 # Bug-Reports:   see http://grml.org/bugs/
6 # License:       This file is licensed under the GPL v2 or any later version.
7 ################################################################################
8
9 set -u
10 set -e
11 . "$GRML_LIVE_CONFIG"
12
13 systemd_setup() {
14   fcopy -M -i -B -v -r /etc/systemd
15
16   echo "Enabling user '$USERNAME' for autologin"
17   sed -i "s/\$USERNAME/$USERNAME/" "$target"/etc/systemd/system/getty@tty*.service.d/override.conf
18
19   case "$(cat "${target}"/etc/debian_version)" in
20     8.*)
21       echo "Debian jessie detected. Enabling workaround for unknown systemctl preset-all/set-default exit failure."
22       $ROOTCMD systemctl preset-all || true
23       $ROOTCMD systemctl set-default grml-boot.target || true
24       ;;
25     *)
26       # workaround for #992847 to workaround /lib/systemd -> /usr/lib/systemd transition
27       $ROOTCMD rm -f /etc/systemd/system/syslog.service
28
29       $ROOTCMD systemctl preset-all
30       $ROOTCMD systemctl set-default grml-boot.target
31       ;;
32   esac
33 }
34
35 file_rc_setup() {
36   if ! [ -r "${target}"/etc/runlevel.conf ] ; then
37      echo 'Warning: /etc/runlevel.conf does not exist...'
38      echo '... assuming we do not have file-rc, skipping 15-initsetup'
39      exit 0
40   fi
41
42   # keep a backup of the original runlevel.conf file for reference
43   if [ -r "${target}"/etc/runlevel.conf.original ] ; then
44     # make sure to store old backup files if they differ as well
45     if ! cmp "${target}"/etc/runlevel.conf "${target}"/etc/runlevel.conf.original >/dev/null ; then
46       cp "${target}"/etc/runlevel.conf.original "${target}/etc/runlevel.conf.original.$(date +%Y%m%d_%k:%M:%S)"
47     fi
48   fi
49
50   cp "${target}"/etc/runlevel.conf "${target}"/etc/runlevel.conf.original
51
52   # provide Grml's default file-rc configuration
53   fcopy -v /etc/runlevel.conf
54
55   # provide Grml's inittab configuration
56   fcopy -v /etc/inittab
57   sed -i "s/\$USERNAME\$/${USERNAME}/" "${target}"/etc/inittab
58
59   # provide Grml's bootlocal init scripts
60   fcopy -v -mroot,root,0755 /etc/init.d/bootlocal.first
61   fcopy -v -mroot,root,0755 /etc/init.d/bootlocal.middle
62   fcopy -v -mroot,root,0755 /etc/init.d/bootlocal.last
63 }
64
65 if ifclass FILE_RC ; then
66   file_rc_setup
67 else
68   systemd_setup
69 fi
70
71 ## END OF FILE #################################################################
72 # vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2