summaryrefslogtreecommitdiffstats
path: root/admin/Sources/Clients/ogagent/src/setup.py
diff options
context:
space:
mode:
Diffstat (limited to 'admin/Sources/Clients/ogagent/src/setup.py')
-rw-r--r--admin/Sources/Clients/ogagent/src/setup.py132
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',
+)