summaryrefslogtreecommitdiffstats
path: root/debian/config.in
blob: c52416dda0fa374f7fc3f1be40f7cb95fe7e246a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/bin/sh
set -e

case `dpkg --print-architecture` in
  kfreebsd-*)
    # No migration from GRUB Legacy, no Linux cmdline
    exit 0
  ;;
esac

. /usr/share/debconf/confmodule

priority=medium

case @PACKAGE@ in
  grub-pc)
    if test -e /boot/grub/stage2 && test -e /boot/grub/menu.lst && ! test -e /boot/grub/core.img ; then

      db_input high grub-pc/chainload_from_menu.lst || true

      db_get grub-pc/kopt_extracted || true
      # this check ensures we only do this once
      if [ "$RET" = "false" ] ; then
        kopt=`sed -ne "s/^# kopt=//p" /boot/grub/menu.lst | tr -s " " "\n" | grep -vx "\(ro\|root=[^ ]*\)" | paste -s -d ' '` || true
        db_set grub2/linux_cmdline "${kopt}" || true
        db_set grub-pc/kopt_extracted true || true
        if [ "${kopt}" = "" ] ; then
          # something smells bad.  give user a chance to correct it.
          priority=high
        else
          # if we got something from menu.lst, it must be correct?
          priority=medium
        fi
        timeout=`sed -ne "s/^timeout[[:space:]][[:space:]]*//p" /boot/grub/menu.lst` || true
        if [ "${timeout}" != "" ]; then
          db_set grub-pc/timeout "${timeout}" || true
        fi
        if grep -q '^hiddenmenu\([[:space:]]\|$\)' /boot/grub/menu.lst; then
          db_set grub-pc/hidden_timeout true || true
        else
          db_set grub-pc/hidden_timeout false || true
        fi
      fi
    fi
  ;;
esac

# This deliberately doesn't include /etc/default/grub.d/*.cfg, since we're
# only sourcing this configuration file in order to prompt for values to
# write back to /etc/default/grub.
if [ -e /etc/default/grub ]; then
  . /etc/default/grub
fi

if [ "${GRUB_CMDLINE_LINUX+set}" = set ]; then
  db_set grub2/linux_cmdline "$GRUB_CMDLINE_LINUX"
fi
if [ "${GRUB_CMDLINE_LINUX_DEFAULT+set}" = set ]; then
  db_set grub2/linux_cmdline_default "$GRUB_CMDLINE_LINUX_DEFAULT"
fi

case @PACKAGE@ in
  grub-pc)
    if [ "${GRUB_TIMEOUT}" != "" ]; then
      db_set grub-pc/timeout "$GRUB_TIMEOUT"
    fi
    if [ "${GRUB_HIDDEN_TIMEOUT}" != "" ]; then
      db_set grub-pc/hidden_timeout true
    elif egrep -qs '^#?[[:space:]]*GRUB_HIDDEN_TIMEOUT=' /etc/default/grub; then
      db_set grub-pc/hidden_timeout false
    fi
  ;;
esac

db_input ${priority} grub2/linux_cmdline || true
db_input medium grub2/linux_cmdline_default || true
case @PACKAGE@ in
  grub-*efi*)
    db_input low grub2/force_efi_extra_removable || true
  ;;
esac
case @PACKAGE@ in
  grub-*efi*|grub-ieee1275)
    db_input low grub2/update_nvram || true
  ;;
esac
db_go