OLD | NEW |
| (Empty) |
1 import sys | |
2 import os | |
3 from shutil import copy, rmtree | |
4 from tempfile import mkdtemp | |
5 from os.path import isfile | |
6 import traceback | |
7 | |
8 from buildbot import master | |
9 | |
10 class ConfigLoader(master.BuildMaster): | |
11 def __init__(self, basedir=os.getcwd(), configFileName="master.cfg"): | |
12 master.BuildMaster.__init__(self, basedir, configFileName) | |
13 configFileName = os.path.join(basedir, configFileName) | |
14 dir = os.getcwd() | |
15 # Use a temporary directory since loadConfig() creates a bunch of | |
16 # directories and compiles .py files | |
17 tempdir = mkdtemp() | |
18 try: | |
19 copy(configFileName, tempdir) | |
20 for entry in os.listdir("."): | |
21 # Any code in a subdirectory will _not_ be copied! This is a bug | |
22 if isfile(entry) and not entry.startswith("twistd.log"): | |
23 copy(entry, tempdir) | |
24 except: | |
25 raise | |
26 | |
27 try: | |
28 os.chdir(tempdir) | |
29 # Add the temp directory to the library path so local modules work | |
30 sys.path.append(tempdir) | |
31 configFile = open(configFileName, "r") | |
32 self.loadConfig(configFile) | |
33 except: | |
34 os.chdir(dir) | |
35 configFile.close() | |
36 rmtree(tempdir) | |
37 raise | |
38 os.chdir(dir) | |
39 rmtree(tempdir) | |
OLD | NEW |