summaryrefslogtreecommitdiffstats
path: root/ubuntu/precise/metapackages/rename-meta/debian/kdm-trinity.postinst
blob: e026f2bfe6d23f63413dbbb54f2e023e77ed6e5d (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
88
89
#! /bin/sh
# postinst script for kdm-trinity
#
# see: dh_installdeb(1)

set -e

# debconf may not be available if some massive purging is going on
HAVE_DEBCONF=
if [ -e /usr/share/debconf/confmodule ]; then
  . /usr/share/debconf/confmodule
  HAVE_DEBCONF=yes
fi

DEFAULT_DISPLAY_MANAGER_FILE=/etc/X11/default-display-manager

  if [ -n "$HAVE_DEBCONF" ]; then
    # disown this question
    db_unregister shared/default-x-display-manager || true
    # does the question still exist?
    if db_get shared/default-x-display-manager; then
      if db_metaget shared/default-x-display-manager owners; then
        # FIXME - redo this part uses shell-lib.sh from xfree86
        #observe "X display managers now available are \"$OWNERS\""
        db_subst shared/default-x-display-manager choices "$RET"
      fi
      DEFAULT_DISPLAY_MANAGER=
      if db_get shared/default-x-display-manager; then
        DEFAULT_DISPLAY_MANAGER="$RET"
      fi
      # are we removing the currently selected display manager?
      if [ -n "$DEFAULT_DISPLAY_MANAGER" ]; then
        if [ "kdm-trinity" = "$DEFAULT_DISPLAY_MANAGER" ]; then
          if [ -e "$DEFAULT_DISPLAY_MANAGER_FILE" ]; then
            if db_get "$DEFAULT_DISPLAY_MANAGER/daemon_name"; then
              # does the display manager file reference the current default?  if
              # so, remove it because it will now be wrong
              if [ -n "$RET" ]; then
                if [ "$(cat "$DEFAULT_DISPLAY_MANAGER_FILE")" = "$RET" ]; then
                  rm "$DEFAULT_DISPLAY_MANAGER_FILE"
                fi
              fi
            fi
          fi
          # ask the user to choose a new default
          db_fset shared/default-x-display-manager seen false
          db_input critical shared/default-x-display-manager || true
          db_go
          # if the default display manager file doesn't exist, write it with
          # the path to the new default display manager
          if [ ! -e "$DEFAULT_DISPLAY_MANAGER_FILE" ]; then
            DEFAULT_DISPLAY_MANAGER=
            if db_get shared/default-x-display-manager; then
              DEFAULT_DISPLAY_MANAGER="$RET"
            fi
            if [ -n "$DEFAULT_DISPLAY_MANAGER" ]; then
              # FIXME - redo this part uses shell-lib.sh from xfree86
              #warn "new default display manager has been selected; please be" \
              #     "sure to run \"dpkg-reconfigure $RET\" to ensure that it" \
              #     "is configured"
              DAEMON_NAME=
              if db_get "$DEFAULT_DISPLAY_MANAGER"/daemon_name; then
                DAEMON_NAME="$RET"
              fi
              if [ ! -n "$DAEMON_NAME" ]; then
                # if we were unable to determine the name of the selected daemon (for
                # instance, if the selected default display manager doesn't provide a
                # daemon_name question), guess
                DAEMON_NAME=$(which "$DEFAULT_DISPLAY_MANAGER" 2>/dev/null)
                if [ ! -n "$DAEMON_NAME" ]; then
                  echo .
                  # FIXME - redo this part uses shell-lib.sh from xfree86
                  #warn "unable to determine path to default X display manager" \
                  #     "$DEFAULT_DISPLAY_MANAGER; not updating" \
                  #     "$DEFAULT_DISPLAY_MANAGER_FILE"
                fi
              fi
              if [ -n "$DAEMON_NAME" ]; then
                echo "$DAEMON_NAME" > "$DEFAULT_DISPLAY_MANAGER_FILE"
              fi
            fi
          fi
        fi
      fi
    fi
  fi

exit 0