#!/usr/bin/python -O
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

import sys, errno

def usage(status):
	print "Usage: env-update [--no-ldconfig]"
	print ""
	print "See the env-update(1) man page for more info"
	sys.exit(status)

if "-h" in sys.argv or "--help" in sys.argv:
	usage(0)

makelinks=1
if "--no-ldconfig" in sys.argv:
	makelinks=0
	sys.argv.pop(sys.argv.index("--no-ldconfig"))

if len(sys.argv) > 1:
	print "!!! Invalid command line options!\n"
	usage(1)

try:
	import portage
except ImportError:
	from os import path as osp
	sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym"))
	import portage
try:
	portage.env_update(makelinks)
except IOError, e:
	if e.errno == errno.EACCES:
		print "env-update: Need superuser access"
		sys.exit(1)
	else:
		raise
