diff options
Diffstat (limited to 'admin/Sources/Clients/ogagent/src/setup.py')
-rw-r--r-- | admin/Sources/Clients/ogagent/src/setup.py | 132 |
1 files changed, 132 insertions, 0 deletions
diff --git a/admin/Sources/Clients/ogagent/src/setup.py b/admin/Sources/Clients/ogagent/src/setup.py new file mode 100644 index 00000000..7d6e80c5 --- /dev/null +++ b/admin/Sources/Clients/ogagent/src/setup.py @@ -0,0 +1,132 @@ +# -*- coding: utf-8 -*- +# +# Copyright (c) 2014 Virtual Cable S.L. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# * Neither the name of Virtual Cable S.L. nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +''' +@author: Adolfo Gómez, dkmaster at dkmon dot com +''' + +VERSION = '1.0.0' + +# ModuleFinder can't handle runtime changes to __path__, but win32com uses them +try: + # py2exe 0.6.4 introduced a replacement modulefinder. + # This means we have to add package paths there, not to the built-in + # one. If this new modulefinder gets integrated into Python, then + # we might be able to revert this some day. + # if this doesn't work, try import modulefinder + try: + import py2exe.mf as modulefinder + except ImportError: + import modulefinder + import win32com, sys + for p in win32com.__path__[1:]: + modulefinder.AddPackagePath("win32com", p) + for extra in ["win32com.shell"]: # ,"win32com.mapi" + __import__(extra) + m = sys.modules[extra] + for p in m.__path__[1:]: + modulefinder.AddPackagePath(extra, p) +except ImportError: + # no build path setup, no worries. + pass + +from distutils.core import setup +import py2exe +import sys +import os + +sys.argv.append('py2exe') + +def get_requests_cert_file(): + """Add Python requests .pem file for installers.""" + import requests + f = os.path.join(os.path.dirname(requests.__file__), 'cacert.pem') + return f + + +class Target: + + def __init__(self, **kw): + self.__dict__.update(kw) + # for the versioninfo resources + self.version = VERSION + self.name = 'OGAgentService' + self.description = 'OpenGnsys Agent Service' + self.author = 'Adolfo Gomez' + self.url = 'http://www.opengnsys.es' + self.company_name = "VirtualCable S.L.U." + self.copyright = "(c) 2014 VirtualCable S.L.U." + self.name = "OpenGnsys Agent" + +# Now you need to pass arguments to setup +# windows is a list of scripts that have their own UI and +# thus don't need to run in a console. + + +udsservice = Target( + description='OpenGnsys Agent Service', + modules=['opengnsys.windows.OGAgentService'], + icon_resources=[(0, 'img\\oga.ico'), (1, 'img\\oga.ico')], + cmdline_style='pywin32' +) + +# Some test_modules are hidden to py2exe by six, we ensure that they appear on "includes" +HIDDEN_BY_SIX = ['SocketServer', 'SimpleHTTPServer', 'urllib'] + +setup( + windows=[ + { + 'script': 'OGAgentUser.py', + 'icon_resources': [(0, 'img\\oga.ico'), (1, 'img\\oga.ico')] + }, + ], + console=[ + { + 'script': 'OGAServiceHelper.py' + } + ], + service=[udsservice], + data_files=[('', [get_requests_cert_file()]),('cfg', ['cfg/ogagent.cfg', 'cfg/ogclient.cfg'])], + options={ + 'py2exe': { + 'bundle_files': 3, + 'compressed': True, + 'optimize': 2, + 'includes': [ 'sip', 'PyQt4', 'win32com.shell', 'requests'] + HIDDEN_BY_SIX, + 'excludes': [ 'doctest', 'unittest' ], + 'dll_excludes': ['msvcp90.dll'], + 'dist_dir': '..\\bin', + } + }, + name='OpenGnsys Agent', + version=VERSION, + description='OpenGnsys Agent', + author='Adolfo Gomez', + author_email='agomez@virtualcable.es', + zipfile='OGAgent.zip', +) |