src/openlink.py
author Padraig O'Briain <padraig.obriain@sun.com>
Thu, 25 Feb 2010 13:45:12 +0000
changeset 1791 b2a37ff09e8c
parent 1763 e0499ce4d17d
permissions -rw-r--r--
13994 References to package names may need to change
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1750
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
     1
#!/usr/bin/python2.6
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
     2
#
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
     3
# CDDL HEADER START
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
     4
#
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
     5
# The contents of this file are subject to the terms of the
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
     6
# Common Development and Distribution License (the "License").
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
     7
# You may not use this file except in compliance with the License.
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
     8
#
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
     9
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    10
# or http://www.opensolaris.org/os/licensing.
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    11
# See the License for the specific language governing permissions
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    12
# and limitations under the License.
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    13
#
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    14
# When distributing Covered Code, include this CDDL HEADER in each
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    15
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    16
# If applicable, add the following below this CDDL HEADER, with the
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    17
# fields enclosed by brackets "[]" replaced with your own identifying
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    18
# information: Portions Copyright [yyyy] [name of copyright owner]
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    19
#
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    20
# CDDL HEADER END
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    21
#
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    22
# Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    23
# Use is subject to license terms.
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    24
#
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    25
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    26
import sys
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    27
import pwd
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    28
import os
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    29
try:
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    30
        import gobject
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    31
        import gnome
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    32
except ImportError:
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    33
        sys.exit(1)
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    34
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    35
if __name__ == '__main__':
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    36
        if len(sys.argv) != 3:
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    37
                sys.exit(1)
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    38
        name = sys.argv[1]
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    39
        link = sys.argv[2]
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    40
        try:
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    41
                pw = pwd.getpwnam(name)
1763
e0499ce4d17d 14594 Typo in openlink.py
Padraig O'Briain <padraig.obriain@sun.com>
parents: 1750
diff changeset
    42
                if pw:
1750
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    43
                        uid = pw.pw_uid
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    44
                        pw_dir = pw.pw_dir
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    45
                        os.putenv('HOME', pw_dir)
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    46
                        os.setreuid(uid, uid)
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    47
                        os.setuid(uid)
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    48
                        try:
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    49
                                gnome.url_show(link)
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    50
                        except gobject.GError:
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    51
                                sys.exit(1)
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    52
                        sys.exit(0)
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    53
                else:
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    54
                        sys.exit(1)
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    55
        except OSError:
1e1d2661ec8b 14422 New Firefox instances is executed as root by packagemanager
Padraig O'Briain <padraig.obriain@sun.com>
parents:
diff changeset
    56
                sys.exit(1)