From e1925856688adca2e53f58d79929c9083b514bfb Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Sun, 4 Sep 2016 20:57:38 -0700 Subject: [PATCH] Refactor setup.py, and make cx_Freeze bdist_msi installer create a shortcut in the Start Menu --- setup.py | 164 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 89 insertions(+), 75 deletions(-) diff --git a/setup.py b/setup.py index ce50255f..a3516a88 100644 --- a/setup.py +++ b/setup.py @@ -29,97 +29,111 @@ def file_list(path): return files version = open('resources/version.txt').read().strip() - description = ( """OnionShare lets you securely and anonymously share a file of any size with someone. """ """It works by starting a web server, making it accessible as a Tor hidden service, """ """and generating an unguessable URL to access and download the file.""") - long_description = description + " " + ( """It doesn't require setting up a server on the internet somewhere or using a third """ """party filesharing service. You host the file on your own computer and use a Tor """ """hidden service to make it temporarily accessible over the internet. The other user """ """just needs to use Tor Browser to download the file from you.""" ) - -images = [ - 'resources/images/logo.png', - 'resources/images/drop_files.png', - 'resources/images/server_stopped.png', - 'resources/images/server_started.png', - 'resources/images/server_working.png' -] - -locale = [ - 'resources/locale/cs.json', - 'resources/locale/de.json', - 'resources/locale/en.json', - 'resources/locale/eo.json', - 'resources/locale/es.json', - 'resources/locale/fi.json', - 'resources/locale/fr.json', - 'resources/locale/it.json', - 'resources/locale/nl.json', - 'resources/locale/no.json', - 'resources/locale/pt.json', - 'resources/locale/ru.json', - 'resources/locale/tr.json' -] - -html = [ - 'resources/html/index.html', - 'resources/html/denied.html', - 'resources/html/404.html' -] +author = 'Micah Lee' +author_email = 'micah@micahflee.com' +url = 'https://github.com/micahflee/onionshare' +license = "GPL v3" +keywords = 'onion, share, onionshare, tor, anonymous, web server' os = platform.system() if os == 'Windows': - from cx_Freeze import setup, Executable - setup( - name="onionshare", + from cx_Freeze import setup, Executable + setup( + name="OnionShare", version=version, description=description, - long_description=long_description, + long_description=long_description, + author=author, + author_email=author_email, + url=url, + license=license, + keywords=keywords, options={ - "build_exe": { - "packages": [], - "excludes": [], - "include_files": ['resources'] - } - }, + "build_exe": { + "packages": [], + "excludes": [], + "include_files": ['resources'] + } + }, executables=[ - Executable("install/scripts/onionshare", base=None), - Executable("install/scripts/onionshare-gui", base="Win32GUI") - ] - ) - + Executable("install/scripts/onionshare", + icon="install/onionshare.ico", + base=None), + Executable("install/scripts/onionshare-gui", + icon="install/onionshare.ico", + shortcutName="OnionShare", + shortcutDir="ProgramMenuFolder", + base="Win32GUI") + ] + ) + else: - from setuptools import setup - setup( - name='onionshare', - version=version, - description=description, - long_description=long_description, - author='Micah Lee', - author_email='micah@micahflee.com', - url='https://github.com/micahflee/onionshare', - license="GPL v3", - keywords='onion, share, onionshare, tor, anonymous, web server', - packages=['onionshare', 'onionshare_gui'], - include_package_data=True, - scripts=['install/scripts/onionshare', 'install/scripts/onionshare-gui'], - data_files=[ - (os.path.join(sys.prefix, 'share/applications'), ['install/onionshare.desktop']), - (os.path.join(sys.prefix, 'share/appdata'), ['install/onionshare.appdata.xml']), - (os.path.join(sys.prefix, 'share/pixmaps'), ['install/onionshare80.xpm']), - (os.path.join(sys.prefix, 'share/onionshare'), [ - 'resources/version.txt', - 'resources/wordlist.txt' - ]), - (os.path.join(sys.prefix, 'share/onionshare/images'), images), - (os.path.join(sys.prefix, 'share/onionshare/locale'), locale), - (os.path.join(sys.prefix, 'share/onionshare/html'), html), - ('/usr/share/nautilus-python/extensions/', ['install/scripts/onionshare-nautilus.py']), - ] - ) + images = [ + 'resources/images/logo.png', + 'resources/images/drop_files.png', + 'resources/images/server_stopped.png', + 'resources/images/server_started.png', + 'resources/images/server_working.png' + ] + + locale = [ + 'resources/locale/cs.json', + 'resources/locale/de.json', + 'resources/locale/en.json', + 'resources/locale/eo.json', + 'resources/locale/es.json', + 'resources/locale/fi.json', + 'resources/locale/fr.json', + 'resources/locale/it.json', + 'resources/locale/nl.json', + 'resources/locale/no.json', + 'resources/locale/pt.json', + 'resources/locale/ru.json', + 'resources/locale/tr.json' + ] + + html = [ + 'resources/html/index.html', + 'resources/html/denied.html', + 'resources/html/404.html' + ] + + from setuptools import setup + setup( + name='onionshare', + version=version, + description=description, + long_description=long_description, + author=author, + author_email=author_email, + url=url, + license=license, + keywords=keywords, + packages=['onionshare', 'onionshare_gui'], + include_package_data=True, + scripts=['install/scripts/onionshare', 'install/scripts/onionshare-gui'], + data_files=[ + (os.path.join(sys.prefix, 'share/applications'), ['install/onionshare.desktop']), + (os.path.join(sys.prefix, 'share/appdata'), ['install/onionshare.appdata.xml']), + (os.path.join(sys.prefix, 'share/pixmaps'), ['install/onionshare80.xpm']), + (os.path.join(sys.prefix, 'share/onionshare'), [ + 'resources/version.txt', + 'resources/wordlist.txt' + ]), + (os.path.join(sys.prefix, 'share/onionshare/images'), images), + (os.path.join(sys.prefix, 'share/onionshare/locale'), locale), + (os.path.join(sys.prefix, 'share/onionshare/html'), html), + ('/usr/share/nautilus-python/extensions/', ['install/scripts/onionshare-nautilus.py']), + ] + )