2011-07-05 Eric Seidel <eric@webkit.org>
[WebKit-https.git] / Tools / BuildSlaveSupport / kill-old-processes
1 #!/usr/bin/python\r
2 # Copyright (C) 2010 Apple Inc.  All rights reserved.\r
3 # Copyright (C) 2011 Google Inc.  All rights reserved.\r
4 #\r
5 # Redistribution and use in source and binary forms, with or without\r
6 # modification, are permitted provided that the following conditions\r
7 # are met:\r
8 #\r
9 # 1.  Redistributions of source code must retain the above copyright\r
10 #     notice, this list of conditions and the following disclaimer.\r
11 # 2.  Redistributions in binary form must reproduce the above copyright\r
12 #     notice, this list of conditions and the following disclaimer in the\r
13 #     documentation and/or other materials provided with the distribution.\r
14 #\r
15 # THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY\r
16 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
17 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r
18 # DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY\r
19 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r
20 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\r
21 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\r
22 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
23 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\r
24 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
25 \r
26 import os, sys\r
27 \r
28 \r
29 def main():\r
30     tasksToKillWin = [\r
31         "cl.exe",\r
32                 "devenv.com",\r
33                 "devenv.exe",\r
34                 "DumpRenderTree.exe",\r
35                 "DumpRenderTree_debug.exe",\r
36                 "httpd.exe",\r
37                 "imagediff.exe",\r
38                 "imagediff_debug.exe",\r
39                 "jsc.exe",\r
40                 "jsc_debug.exe",\r
41                 "LightTPD.exe",\r
42                 "link.exe",\r
43                 "midl.exe",\r
44                 "perl.exe",\r
45                 "Safari.exe",\r
46                 "svn.exe",\r
47                 "testapi.exe",\r
48                 "testapi_debug.exe",\r
49                 "VcBuildHelper.exe",\r
50                 "wdiff.exe",\r
51                 "WebKit2WebProcess.exe",\r
52                 "WebKit2WebProcess_debug.exe",\r
53                 "WebKitTestRunner.exe",\r
54                 "WebKitTestRunner_debug.exe",\r
55         ]\r
56 \r
57     tasksToKillMac = [\r
58                 "jsc",\r
59                 "make",\r
60                 "per5.12",\r
61                 "perl",\r
62                 "Problem Reporter",\r
63                 "ruby",\r
64                 "Safari Web Content",\r
65                 "Safari",\r
66                 "svn",\r
67                 "DumpRenderTree",\r
68                 "TestWebKitAPI Web Content",\r
69                 "TestWebKitAPI",\r
70                 "WebKitPluginAgen", # Why no 't'?\r
71                 "WebKitTestRunner Web Content",\r
72                 "WebKitTestRunner",\r
73                 "WebProcess",\r
74         ]\r
75 \r
76     if sys.platform == 'darwin':\r
77         for task in tasksToKillMac:\r
78             os.system("killall -9 -v -m " + task)\r
79     elif sys.platform == 'cygwin' or sys.platform == 'win32':\r
80         for task in tasksToKillWin:\r
81             os.system("taskkill /t /f /im " + task)\r
82     else:\r
83         raise Exception("Have not implemented kill-old-processes for this platform")\r
84     # FIXME: Should we return an exit code based on how the kills went?\r
85 \r
86 \r
87 if __name__ == '__main__':\r
88     sys.exit(main())\r