| Index: configs/chromium/slave/run_slave.py
|
| diff --git a/configs/chromium/slave/run_slave.py b/configs/chromium/slave/run_slave.py
|
| deleted file mode 100644
|
| index 68899240cfced739a4221e7cc93d68926b26b188..0000000000000000000000000000000000000000
|
| --- a/configs/chromium/slave/run_slave.py
|
| +++ /dev/null
|
| @@ -1,177 +0,0 @@
|
| -#!/usr/bin/python
|
| -# Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| -# Use of this source code is governed by a BSD-style license that can be
|
| -# found in the LICENSE file.
|
| -
|
| -""" Initialize the environment variables and start the buildbot slave.
|
| -"""
|
| -
|
| -import os
|
| -import subprocess
|
| -import sys
|
| -
|
| -
|
| -def remove_all_vars_except(dictionary, keep):
|
| - """Remove all keys from the specified dictionary except those in !keep|"""
|
| - for key in set(dictionary.keys()) - set(keep):
|
| - dictionary.pop(key)
|
| -
|
| -
|
| -def Reboot():
|
| - print "Rebooting..."
|
| - if sys.platform.startswith('win'):
|
| - subprocess.call(['shutdown', '-r', '-f', '-t', '1'])
|
| - elif sys.platform in ('darwin', 'posix', 'linux2'):
|
| - subprocess.call(['sudo', 'shutdown', '-r', 'now'])
|
| - else:
|
| - raise NotImplementedError('Implement Reboot function')
|
| -
|
| -
|
| -def HotPatchSlaveBuilder():
|
| - """We could override the SlaveBuilder class but it's way simpler to just
|
| - hotpatch it."""
|
| - from buildbot.slave.bot import SlaveBuilder
|
| - old_remote_shutdown = SlaveBuilder.remote_shutdown
|
| -
|
| - def rebooting_remote_shutdown(self):
|
| - old_remote_shutdown(self)
|
| - Reboot()
|
| -
|
| - SlaveBuilder.remote_shutdown = rebooting_remote_shutdown
|
| -
|
| -
|
| -def main():
|
| - # change the current directory to the directory of the script.
|
| - os.chdir(sys.path[0])
|
| -
|
| - # Make sure the current python path is absolute.
|
| - paths = os.environ['PYTHONPATH'].split(os.pathsep)
|
| - os.environ['PYTHONPATH'] = ''
|
| - for path in paths:
|
| - os.environ['PYTHONPATH'] += os.path.abspath(path)
|
| - os.environ['PYTHONPATH'] += os.pathsep
|
| -
|
| - # Update the python path.
|
| - parent_dir = os.path.abspath(os.path.pardir)
|
| - chromium_buildbot_dir = os.path.join(
|
| - parent_dir, os.path.pardir, os.path.pardir,
|
| - 'third_party', 'chromium_buildbot')
|
| - root = os.path.dirname(parent_dir)
|
| - python_path = [
|
| - os.path.join(chromium_buildbot_dir, 'site_config'),
|
| - os.path.join(chromium_buildbot_dir, 'scripts'),
|
| - os.path.join(chromium_buildbot_dir, 'scripts', 'release'),
|
| - os.path.join(chromium_buildbot_dir, 'third_party'),
|
| - os.path.join(parent_dir),
|
| - '.', # Include the current working directory by default.
|
| - ]
|
| - os.environ['PYTHONPATH'] += os.pathsep.join(python_path)
|
| - print os.environ['PYTHONPATH']
|
| -
|
| - # Add these in from of the PATH too.
|
| - new_path = python_path
|
| - new_path.extend(sys.path)
|
| - sys.path = new_path
|
| -
|
| - os.environ['CHROME_HEADLESS'] = '1'
|
| - os.environ['PAGER'] = 'cat'
|
| -
|
| - # Platform-specific initialization.
|
| -
|
| - if sys.platform.startswith('win'):
|
| - # list of all variables that we want to keep
|
| - env_var = [
|
| - 'APPDATA',
|
| - 'BUILDBOT_ARCHIVE_FORCE_SSH',
|
| - 'CHROME_HEADLESS',
|
| - 'CHROMIUM_BUILD',
|
| - 'COMSPEC',
|
| - 'COMPUTERNAME',
|
| - 'DXSDK_DIR',
|
| - 'HOMEDRIVE',
|
| - 'HOMEPATH',
|
| - 'LOCALAPPDATA',
|
| - 'NUMBER_OF_PROCESSORS',
|
| - 'OS',
|
| - 'PATH',
|
| - 'PATHEXT',
|
| - 'PROCESSOR_ARCHITECTURE',
|
| - 'PROCESSOR_ARCHITEW6432',
|
| - 'PROGRAMFILES',
|
| - 'PROGRAMW6432',
|
| - 'PYTHONPATH',
|
| - 'SYSTEMDRIVE',
|
| - 'SYSTEMROOT',
|
| - 'TEMP',
|
| - 'TMP',
|
| - 'USERNAME',
|
| - 'USERDOMAIN',
|
| - 'USERPROFILE',
|
| - 'VS100COMNTOOLS',
|
| - 'WINDIR',
|
| - ]
|
| -
|
| - remove_all_vars_except(os.environ, env_var)
|
| -
|
| - # extend the env variables with the chrome-specific settings.
|
| - depot_tools = os.path.join(chromium_buildbot_dir, '..', 'depot_tools')
|
| - # Reuse the python executable used to start this script.
|
| - python = os.path.dirname(sys.executable)
|
| - system32 = os.path.join(os.environ['SYSTEMROOT'], 'system32')
|
| - wbem = os.path.join(system32, 'WBEM')
|
| - slave_path = [depot_tools, python, system32, wbem]
|
| - # build_internal/tools contains tools we can't redistribute.
|
| - tools = os.path.join(chromium_buildbot_dir, '..', 'build_internal', 'tools')
|
| - if os.path.isdir(tools):
|
| - slave_path.append(os.path.abspath(tools))
|
| - os.environ['PATH'] = os.pathsep.join(slave_path)
|
| - os.environ['LOGNAME'] = os.environ['USERNAME']
|
| -
|
| - elif sys.platform in ('darwin', 'posix', 'linux2'):
|
| - # list of all variables that we want to keep
|
| - env_var = [
|
| - 'CCACHE_DIR',
|
| - 'CHROME_ALLOCATOR',
|
| - 'CHROME_HEADLESS',
|
| - 'DISPLAY',
|
| - 'DISTCC_DIR',
|
| - 'HOME',
|
| - 'HOSTNAME',
|
| - 'LANG',
|
| - 'LOGNAME',
|
| - 'PAGER',
|
| - 'PATH',
|
| - 'PWD',
|
| - 'PYTHONPATH',
|
| - 'SHELL',
|
| - 'SSH_AGENT_PID',
|
| - 'SSH_AUTH_SOCK',
|
| - 'SSH_CLIENT',
|
| - 'SSH_CONNECTION',
|
| - 'SSH_TTY',
|
| - 'USER',
|
| - 'USERNAME',
|
| - ]
|
| -
|
| - remove_all_vars_except(os.environ, env_var)
|
| -
|
| - depot_tools = os.path.join(chromium_buildbot_dir, '..', 'depot_tools')
|
| -
|
| - slave_path = [depot_tools, '/usr/bin', '/bin',
|
| - '/usr/sbin', '/sbin', '/usr/local/bin']
|
| - os.environ['PATH'] = os.pathsep.join(slave_path)
|
| -
|
| - elif sys.platform == 'cygwin':
|
| - #TODO(maruel): Implement me.
|
| - pass
|
| - else:
|
| - raise NotImplementedError('Unknown platform')
|
| -
|
| - # Run the slave.
|
| - HotPatchSlaveBuilder()
|
| - import twisted.scripts.twistd as twistd
|
| - twistd.run()
|
| -
|
| -
|
| -if '__main__' == __name__:
|
| - main()
|
|
|