1beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik# -*- coding: ascii -*- 2beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik# 3beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik# Copyright 2007, 2008, 2009, 2010, 2011 4beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik# Andr\xe9 Malo or his licensors, as applicable 5beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik# 6beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik# Licensed under the Apache License, Version 2.0 (the "License"); 7beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik# you may not use this file except in compliance with the License. 8beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik# You may obtain a copy of the License at 9beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik# 10beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik# http://www.apache.org/licenses/LICENSE-2.0 11beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik# 12beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik# Unless required by applicable law or agreed to in writing, software 13beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik# distributed under the License is distributed on an "AS IS" BASIS, 14beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik# See the License for the specific language governing permissions and 16beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik# limitations under the License. 17beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik""" 18beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik================ 19beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik dist utilities 20beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik================ 21beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik 22beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craikdist utilities. 23beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik""" 24beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik__author__ = u"Andr\xe9 Malo" 25beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik__docformat__ = "restructuredtext en" 26beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik 27beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craikimport sys as _sys 28beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik 29beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craikfrom _setup import shell as _shell 30beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik 31beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik 32beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craikdef run_setup(*args, **kwargs): 33beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik """ Run setup """ 34beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik if 'setup' in kwargs: 35beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik script = kwargs.get('setup') or 'setup.py' 36beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik del kwargs['setup'] 37beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik else: 38beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik script = 'setup.py' 39beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik if 'fakeroot' in kwargs: 40beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik fakeroot = kwargs['fakeroot'] 41beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik del kwargs['fakeroot'] 42beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik else: 43beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik fakeroot = None 44beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik if kwargs: 45beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik raise TypeError("Unrecognized keyword parameters") 46beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik 47beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik script = _shell.native(script) 48beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik argv = [_sys.executable, script] + list(args) 49beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik if fakeroot: 50beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik argv.insert(0, fakeroot) 51beca7ae1f35e7f6605f4a21b5f4edeaa72000e39Chris Craik return not _shell.spawn(*argv) 52