diff options
author | Michael Vogt <michael.vogt@ubuntu.com> | 2010-05-14 09:42:05 +0200 |
---|---|---|
committer | Michael Vogt <michael.vogt@ubuntu.com> | 2010-05-14 09:42:05 +0200 |
commit | e9deb44823c85daa7bb8e485610c0fad94f4be2c (patch) | |
tree | 12777c291349883859e29bc87a1605f301450d71 /debian/apt.postinst | |
parent | 6697fffb696a128816f96911b2b73a63148808d8 (diff) |
* debian/apt.postinst:
- do not fail if getent returns nothing useful (LP: #579647)
thanks to Jean-Baptiste Lallement
Diffstat (limited to 'debian/apt.postinst')
-rw-r--r-- | debian/apt.postinst | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/debian/apt.postinst b/debian/apt.postinst index 6236acd42..4f14703d0 100644 --- a/debian/apt.postinst +++ b/debian/apt.postinst @@ -5,7 +5,18 @@ set -e # set the proxy based on the admin users gconf settings # set_apt_proxy_from_gconf() { - admin_user=$(getent group admin|cut -d: -f4|cut -d, -f1) + # try SUDO_USER first + if [ -n "$SUDO_USER" ]; then + admin_user="$SUDO_USER" + else + admin_user=$(getent group admin|cut -d: -f4|cut -d, -f1) + fi + # test if the user actually exists, getent returns "+" for e.g. + # LDAP + if ! id -u "$admin_user" > /dev/null 2>&1; then + return + fi + # get the settings from gconf if [ -n "$admin_user" ] && [ -x /usr/bin/sudo ] && [ -z "$http_proxy" ] && [ -x /usr/bin/gconftool ]; then use=$(sudo -u "$admin_user" gconftool --get /system/http_proxy/use_http_proxy 2>/dev/null) host=$(sudo -u "$admin_user" gconftool --get /system/http_proxy/host 2>/dev/null) @@ -41,7 +52,7 @@ case "$1" in # that sudo no longer honors http_proxy # this can be removed after lucid is released if dpkg --compare-versions "$2" lt-nl "0.7.25.3ubuntu2"; then - set_apt_proxy_from_gconf + set_apt_proxy_from_gconf || true fi ;; |