From bd1b7da868b8cb29b371a46d92025594fb63c104 Mon Sep 17 00:00:00 2001
From: Holger Nahrstaedt <holger@nahrstaedt.de>
Date: Fri, 4 May 2018 21:43:27 +0200
Subject: [PATCH] Try to build exe with pyinstaller

---
 .gitignore         |   1 -
 appveyor.yml       |   6 +++---
 beempy-onedir.spec |  48 +++++++++++++++++++++++++++++++++++++++++++++
 beempy.ico         | Bin 0 -> 17726 bytes
 beempy.spec        |  40 +++++++++++++++++++++++++++++++++++++
 5 files changed, 91 insertions(+), 4 deletions(-)
 create mode 100644 beempy-onedir.spec
 create mode 100644 beempy.ico
 create mode 100644 beempy.spec

diff --git a/.gitignore b/.gitignore
index 21607aa5..41fdc26b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,7 +31,6 @@ var/
 #  Usually these files are written by a python script from a template
 #  before PyInstaller builds the exe, so as to inject date/other infos into it.
 *.manifest
-*.spec
 
 # Installer logs
 pip-log.txt
diff --git a/appveyor.yml b/appveyor.yml
index c2a76ae8..f2dc2623 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -44,7 +44,7 @@ install:
   - conda info -a
   - conda install --yes conda-build setuptools pip pytest-pylint parameterized cryptography
   - conda install --yes pycryptodomex scrypt pyyaml pytest pytest-mock coverage mock appdirs
-  - conda install --yes ecdsa requests future websocket-client pytz six Click events prettytable 
+  - conda install --yes ecdsa requests future websocket-client pytz six Click events prettytable pyinstaller
 
 
   # Upgrade to the latest version of pip to avoid it displaying warnings
@@ -65,8 +65,8 @@ test_script:
 
 after_test:
   # If tests are successful, create binary packages for the project.
-  - "pip install wheel"
-  - "python setup.py bdist_wheel"
+  - pyinstaller beempy-onedir.spec
+  - 7z a beempy.zip %APPVEYOR_BUILD_FOLDER%\dist\beempy
   #- "%CMD_IN_ENV% python setup.py bdist_wininst"
   #- "%CMD_IN_ENV% python setup.py bdist_msi"
   - ps: "ls dist"
diff --git a/beempy-onedir.spec b/beempy-onedir.spec
new file mode 100644
index 00000000..c1be18ef
--- /dev/null
+++ b/beempy-onedir.spec
@@ -0,0 +1,48 @@
+# -*- mode: python -*-
+
+import os
+import glob
+import platform
+
+
+block_cipher = None
+os_name = platform.system()
+binaries = []
+
+data_files = []
+
+
+a = Analysis(['beem/cli.py'],
+             pathex=['beem'],
+             binaries=binaries,
+             datas=data_files,
+             hiddenimports=[],
+             hookspath=[],
+             runtime_hooks=[],
+             excludes=['matplotlib', 'scipy', 'pandas', 'numpy', 'PyQt5', 'tkinter'],
+             win_no_prefer_redirects=False,
+             win_private_assemblies=False,
+             cipher=block_cipher)
+pyz = PYZ(a.pure, a.zipped_data,
+             cipher=block_cipher)
+
+exe = EXE(
+    pyz,
+    a.scripts,
+    exclude_binaries=True,
+    name='beempy',
+    debug=False,
+    strip=False,
+    upx=False,
+    console=True,
+    icon='beempy.ico',
+)
+coll = COLLECT(
+    exe,
+    a.binaries,
+    a.zipfiles,
+    a.datas,
+    name='beempy',
+    strip=False,
+    upx=False
+)
\ No newline at end of file
diff --git a/beempy.ico b/beempy.ico
new file mode 100644
index 0000000000000000000000000000000000000000..6c0e3ef7175c5fc768dff3432a58dd695acf1a1c
GIT binary patch
literal 17726
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
aPaaIa>+#7wK6x<p>CX3c2SXJ1>VE)dELLs+

literal 0
HcmV?d00001

diff --git a/beempy.spec b/beempy.spec
new file mode 100644
index 00000000..c1d6559e
--- /dev/null
+++ b/beempy.spec
@@ -0,0 +1,40 @@
+# -*- mode: python -*-
+
+import os
+import glob
+import platform
+
+
+block_cipher = None
+os_name = platform.system()
+binaries = []
+
+data_files = []
+
+
+a = Analysis(['beem/cli.py'],
+             pathex=['beem'],
+             binaries=binaries,
+             datas=data_files,
+             hiddenimports=[],
+             hookspath=[],
+             runtime_hooks=[],
+             excludes=['matplotlib', 'scipy', 'pandas', 'numpy', 'PyQt5', 'tkinter'],
+             win_no_prefer_redirects=False,
+             win_private_assemblies=False,
+             cipher=block_cipher)
+pyz = PYZ(a.pure, a.zipped_data,
+             cipher=block_cipher)
+exe = EXE(pyz,
+          a.scripts,
+          a.binaries,
+          a.zipfiles,
+          a.datas,
+          name='beempy',
+          debug=False,
+          strip=False,
+          upx=False,
+          runtime_tmpdir=None,
+          console=True,
+          icon='beempy.ico',
+ )
-- 
GitLab