devserver: scripts_dir detection that also works outside the chroot

BUG=5246
TEST=run devserver from outside the chroot and see it not fail

Change-Id: I4eb546fcfae5db9b2ec9369289b17dec4748ee32

Review URL: http://codereview.chromium.org/6591116
diff --git a/buildutil.py b/buildutil.py
index 29b89f9..84af58e 100644
--- a/buildutil.py
+++ b/buildutil.py
@@ -11,10 +11,16 @@
   def __init__(self, root_dir, static_dir):
     self.app_id = '87efface-864d-49a5-9bb3-4b050a7c227a'
     self.root_dir = root_dir
-    self.scripts_dir = '%s/src/scripts' % os.environ['CROS_WORKON_SRCROOT']
     self.devserver_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
     self.static_dir = static_dir
     self.x86_pkg_dir = '%s/build/x86/local_packages' % self.root_dir
+    try:
+      self.scripts_dir = '%s/src/scripts' % os.environ['CROS_WORKON_SRCROOT']
+    except KeyError:
+      # Outside of chroot: This is a corner case. Since we live either in
+      # platform/dev or /usr/bin/, scripts have to live in ../../../src/scripts
+      self.scripts_dir = os.path.abspath(os.path.join(
+          self.devserver_dir, '../../../src/scripts'))
 
   def AssertSystemCallSuccess(self, err, cmd='unknown'):
     """