# to trigger _force_quit() in case some non-daemon threads won't exit cleanly.
# threading.Thread.join() should not mask signals (at least in python 2.5).
me = threading.currentThread()
+ _logger.debug('current thread: %r', me)
for thread in threading.enumerate():
+ _logger.debug('process %r (%r)', thread, thread.isDaemon())
- if thread != me and not thread.isDaemon():
+ if thread != me and not thread.isDaemon() and thread.ident != main_thread_id:
while thread.isAlive():
+ _logger.debug('join and sleep')
# Need a busyloop here as thread.join() masks signals
# and would prevent the forced shutdown.
thread.join(0.05)
#
##############################################################################
- from distutils.core import setup
import os
+ import glob
+ from distutils.core import setup
import py2exe
+ def datas():
+ r = []
+ if os.name == 'nt':
+ r.append(("Microsoft.VC90.CRT", glob.glob('C:\Microsoft.VC90.CRT\*.*')))
+ return r
+
-setup(service=["OpenERPServerService"],
- options={"py2exe":{"excludes":["Tkconstants","Tkinter","tcl",
- "_imagingtk","PIL._imagingtk",
- "ImageTk", "PIL.ImageTk",
- "FixTk"],
- "skip_archive": 1,
- "optimize": 2,}},
+meta = {}
+execfile(os.path.join(os.path.dirname(__file__), '..', 'openerp', 'release.py'), meta)
+
+def generate_files():
+ actions = {
+ 'start': ['stop', 'start'],
+ 'stop': ['stop'],
+ }
+
+ files = []
+ for action, steps in actions.items():
+ fname = action + '.bat'
+ files.append(fname)
+ with open(fname, 'w') as fp:
+ fp.write('@PATH=%WINDIR%\system32;%WINDIR%;%WINDIR%\System32\Wbem;.\n')
+ for step in steps:
+ fp.write('@net %s %s\n' % (step, meta['nt_service_name']))
+
+ files.append('meta.py')
+ with open('meta.py', 'w') as fp:
+ for m in 'description serie nt_service_name'.split():
+ fp.write("%s = %r\n" % (m, meta[m],))
+
+ return files
+
+excludes = "Tkconstants Tkinter tcl _imagingtk PIL._imagingtk ImageTk PIL.ImageTk FixTk".split()
+
+setup(service = ["OpenERPServerService"],
+ version = meta['version'],
+ license = meta['license'],
+ url = meta['url'],
+ author = meta['author'],
+ author_email = meta['author_email'],
+ data_files = generate_files(),
+ options = {"py2exe": {
+ "excludes": excludes,
+ "skip_archive": 1,
+ "optimize": 2,
- }}
++ }},
+ data_files=datas(),
)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: