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
|