pylucene 3.5.0-3
[pylucene.git] / jcc / helpers / build.py
1 #   Licensed under the Apache License, Version 2.0 (the "License");
2 #   you may not use this file except in compliance with the License.
3 #   You may obtain a copy of the License at
4 #
5 #       http://www.apache.org/licenses/LICENSE-2.0
6 #
7 #   Unless required by applicable law or agreed to in writing, software
8 #   distributed under the License is distributed on an "AS IS" BASIS,
9 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10 #   See the License for the specific language governing permissions and
11 #   limitations under the License.
12
13 import os
14
15 from distutils.command.build_py import build_py
16 from distutils import log
17
18 class jcc_build_py(build_py):
19     config_text = None
20     config_file = None
21
22     def run(self):
23         self.write_jcc_config()
24         return build_py.run(self)
25
26     def write_jcc_config(self):
27         # only write jcc's config.py file if it doesn't exist or a build 
28         # command is given
29         write = False
30         if not os.path.isfile(self.config_file):
31             write = True
32         else:
33             for command in self.distribution.commands:
34                 if command.startswith("build"):
35                     write = True
36                     break
37
38         if write:
39             log.info("writing %s" %(self.config_file))
40             config = open(self.config_file, 'w')
41             try:
42                 config.write(self.config_text)
43             finally:
44                 config.close()
45         else:
46             log.info("not writing %s" %(self.config_file))