This file is indexed.

preinst is in nvidia-prime 0.8.2.

This file is a maintainer script. It is executed when installing (*inst) or removing (*rm) the package.

The actual contents of the file can be viewed below.

  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
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
#!/bin/sh
# preinst script for nvidia-prime
#
# see: dh_installdeb(1)

set -e

# summary of how this script can be called:
#        * <new-preinst> `install'
#        * <new-preinst> `install' <old-version>
#        * <new-preinst> `upgrade' <old-version>
#        * <old-preinst> `abort-upgrade' <new-version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package

lightdm_orig_conf=/etc/lightdm/lightdm.conf
default_display_manager_file=/etc/X11/default-display-manager

add_hybrid_script () {
    if [ "`lsb_release -r -s`" = "12.04" ]; then
        # Precise does not support separate config files
        if [ -s "$lightdm_orig_conf" ]; then
            # Get the file
            lightdm_orig="$(cat $lightdm_orig_conf)"

            # See if a display setup script is already
            # in use
            if echo "$lightdm_orig" | \
                 grep "display-setup-script"; then
                echo "$lightdm_orig" | \
                sed "s/.*display-setup-script.*/\
display-setup-script\=\/sbin\/prime-offload/g" \
                > "$lightdm_orig_conf"
            else
                # Add a line after the pattern
                echo "$lightdm_orig" | \
                sed '/.*user-session.*/ a\
display-setup-script\=\/sbin\/prime-offload' \
                > "$lightdm_orig_conf"
            fi

            # Read the file again
            lightdm_orig="$(cat $lightdm_orig_conf)"

            # See if a display stopped script is already
            # in use
            if echo "$lightdm_orig" | \
                 grep "display-stopped-script"; then
                echo "$lightdm_orig" | \
                sed "s/.*display-stopped-script.*/\
display-stopped-script\=\/sbin\/prime-switch/g" \
                > "$lightdm_orig_conf"
            else
                # Add a line after the pattern
                echo "$lightdm_orig" | \
                sed '/.*display-setup-script.*/ a\
display-stopped-script\=\/sbin\/prime-switch' \
                > "$lightdm_orig_conf"
            fi
        fi
    else
        # Remove any configuration files that
        # nvidia-prime might have changed in previous
        # releases
        if [ -s "$lightdm_orig_conf" ]; then
            grep -e "display-setup-script=/sbin/prime-offload"  \
                 -e "display-stopped-script=/sbin/prime-switch" \
                 -q $lightdm_orig_conf && rm -f $lightdm_orig_conf \
                 || true
        fi
    fi
}

case "$1" in
    install|upgrade)
        if [ -e "$default_display_manager_file" ]; then
            default_path="$(cat $default_display_manager_file)"
            display_manager="${default_path##*/}"
            # We currently support only lightdm
            if [ "$display_manager" = "lightdm" ]; then
                # Insert the display-*-script lines
                add_hybrid_script
            fi
        fi

        # Remove the lightdm config file from /etc
        if dpkg-maintscript-helper supports rm_conffile; then
            dpkg-maintscript-helper rm_conffile \
            /etc/lightdm/lightdm.conf.d/90-nvidia.conf 0.6.1~ -- "$@"
        fi

        if [ ! -f /etc/prime-discrete ]; then
            echo "on" > /etc/prime-discrete
        fi
    ;;

    abort-upgrade)
    ;;

    *)
        echo "preinst called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.



exit 0