src/launch.py
author Padraig O'Briain <padraig.obriain@sun.com>
Tue, 23 Jun 2009 09:28:03 +0100
changeset 1172 fc39dcc70f84
child 1217 1e2405e83d3a
permissions -rw-r--r--
9574 Package Manager should use user's GNOME proxy settings
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1172
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
     1
#!/usr/bin/python2.4
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
     2
#
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
     3
# CDDL HEADER START
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
     4
#
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
     6
# Common Development and Distribution License (the "License").
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
     7
# You may not use this file except in compliance with the License.
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
     8
#
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
     9
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    10
# or http://www.opensolaris.org/os/licensing.
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    11
# See the License for the specific language governing permissions
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    12
# and limitations under the License.
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    13
#
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    14
# When distributing Covered Code, include this CDDL HEADER in each
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    15
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    16
# If applicable, add the following below this CDDL HEADER, with the
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    17
# fields enclosed by brackets "[]" replaced with your own identifying
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    18
# information: Portions Copyright [yyyy] [name of copyright owner]
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    19
#
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    20
# CDDL HEADER END
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    21
#
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    22
# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    23
# Use is subject to license terms.
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    24
#
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    25
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    26
HTTP_PROXY_HOST='/system/http_proxy/host'
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    27
HTTP_PROXY_PORT='/system/http_proxy/port'
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    28
HTTP_PROXY_USE = "/system/http_proxy/use_http_proxy"
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    29
HTTP_PROXY_VARIABLE='http_proxy'
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    30
HTTPS_PROXY_VARIABLE='https_proxy'
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    31
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    32
import gconf
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    33
import os
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    34
import sys
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    35
import subprocess
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    36
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    37
def get_http_proxy():
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    38
        host= client.get_string(HTTP_PROXY_HOST)
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    39
        port = client.get_int(HTTP_PROXY_PORT)
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    40
        return 'http://' + host + ':' + str(port) + '/'
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    41
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    42
if __name__ == '__main__':
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    43
        client = gconf.client_get_default()
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    44
        use_http_proxy= client.get_bool(HTTP_PROXY_USE)
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    45
        if use_http_proxy:
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    46
                http_proxy = get_http_proxy()
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    47
                if os.getenv(HTTP_PROXY_VARIABLE) == None:
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    48
                        os.putenv(HTTP_PROXY_VARIABLE, http_proxy)
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    49
                if os.getenv(HTTPS_PROXY_VARIABLE) == None:
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    50
                        os.putenv(HTTPS_PROXY_VARIABLE, http_proxy)
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    51
        args = ''
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    52
        for i in range(1, len(sys.argv)):
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    53
                args = args + sys.argv[i]
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    54
                if i < len(sys.argv) - 1:
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    55
                        args = args + ' '
fc39dcc70f84 9574 Package Manager should use user's GNOME proxy settings
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    56
        command = subprocess.Popen(["/usr/bin/gksu", args], close_fds=True)