| Index: chromite
|
| ===================================================================
|
| --- chromite (revision 93425)
|
| +++ chromite (working copy)
|
| @@ -1,84 +1 @@
|
| -#!/usr/bin/python
|
| -# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
|
| -# Use of this source code is governed by a BSD-style license that can be
|
| -# found in the LICENSE file.
|
| -
|
| -"""Wrapper for the chromite shell.
|
| -
|
| -This script is intended to run in several ways:
|
| -- Outside the chroot, it should be _copied_ to someplace that is in the
|
| - path (like depot_tools). It will search for the right chromite by looking
|
| - for a file 'chromite/shell/main.py' upward based on the CWD.
|
| -- Inside the chroot, it might be _either_ copied to someplace in the path (since
|
| - depot_tools is in the path in the chroot) or it might run from chromite/bin
|
| - directly, which should be in the PATH. In any case, we'll look for the
|
| - real 'chromite/shell/main.py' based on the environment variable
|
| - CROS_WORKON_SRCROOT, so it doesn't matter what the CWD is.
|
| -
|
| -If you're looking at a copy and want to know where the original looks at, look
|
| -here:
|
| - http://git.chromium.org/gitweb/?p=chromite.git;a=blob;f=bin/chromite
|
| -
|
| -Since this script is _copied_, it should remain small and not use internal libs.
|
| -
|
| -"""
|
| -
|
| -# Python imports.
|
| -import os
|
| -import sys
|
| -
|
| -def Search(path):
|
| - """Return an iterator of lists of places to look for chromite."""
|
| -
|
| - if os.path.exists('/etc/debian_chroot'):
|
| - # We're in the chroot. Chromite should be in the python path inside the
|
| - # chroot, so we don't do any searching. NOTE that we purposely don't want
|
| - # CROS_WORKON_SRCROOT in the python path.
|
| - yield []
|
| - else:
|
| - # Look in $CROS_WORKON_SRCROOT first. The idea is that a user would set
|
| - # this manually if they wanted to specify a particular version of chromite.
|
| - if 'CROS_WORKON_SRCROOT' in os.environ:
|
| - yield [os.environ['CROS_WORKON_SRCROOT']]
|
| -
|
| - # Search upward until we either end up with a blank dir or the "parent" dir
|
| - # doesn't change.
|
| - prev_path = None
|
| - while path and path != prev_path:
|
| - yield [path]
|
| - path, prev_path = os.path.dirname(path), path
|
| -
|
| -
|
| -for path in Search(os.getcwd()):
|
| - sys.path = path + sys.path
|
| - try:
|
| - import chromite.shell.main
|
| - break
|
| - except ImportError, e:
|
| - # Just in case there is actually something wrong with Chromite, print
|
| - # a sensible error. We match only the end of the string so that we can
|
| - # handle an error within the chromite directory.
|
| - # The full error is 'No module named (chromite.)shell.main'
|
| - # Note: If you hit the directory containing chromite on the way up, then
|
| - # the error will be 'No module named shell.main' so we must check only the
|
| - # shell.main part.
|
| - if not str(e).endswith('shell.main'):
|
| - raise
|
| -
|
| - # We've got different modules named chromite in the tree, pulling in the
|
| - # wrong one will break the right one. So unload it.
|
| - if 'chromite' in sys.modules:
|
| - del sys.modules['chromite']
|
| - sys.path = sys.path[len(path):]
|
| -else:
|
| - # TODO(dianders): Should we actually print out the 'repo init' call that
|
| - # the user should use?
|
| - sys.stderr.write(
|
| - "ERROR: Couldn't find the chromite tool.\n"
|
| - "\n"
|
| - "Please change to a directory inside your Chromium OS source tree\n"
|
| - "and retry. If you need to setup a Chromium OS source tree, see:\n"
|
| - " http://www.chromium.org/chromium-os/developer-guide\n")
|
| - sys.exit(1)
|
| -
|
| -chromite.shell.main.main()
|
| +link chromite_wrapper
|
|
|
| Property changes on: chromite
|
| ___________________________________________________________________
|
| Added: svn:special
|
| + *
|
|
|
|
|