Refactor setup.py, and make cx_Freeze bdist_msi installer create a shortcut in the Start Menu

This commit is contained in:
Micah Lee 2016-09-04 20:57:38 -07:00
parent 0ad1311dd5
commit e192585668

164
setup.py
View File

@ -29,97 +29,111 @@ def file_list(path):
return files return files
version = open('resources/version.txt').read().strip() version = open('resources/version.txt').read().strip()
description = ( description = (
"""OnionShare lets you securely and anonymously share a file of any size with someone. """ """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, """ """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.""") """and generating an unguessable URL to access and download the file.""")
long_description = description + " " + ( long_description = description + " " + (
"""It doesn't require setting up a server on the internet somewhere or using a third """ """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 """ """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 """ """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.""" """just needs to use Tor Browser to download the file from you."""
) )
author = 'Micah Lee'
images = [ author_email = 'micah@micahflee.com'
'resources/images/logo.png', url = 'https://github.com/micahflee/onionshare'
'resources/images/drop_files.png', license = "GPL v3"
'resources/images/server_stopped.png', keywords = 'onion, share, onionshare, tor, anonymous, web server'
'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'
]
os = platform.system() os = platform.system()
if os == 'Windows': if os == 'Windows':
from cx_Freeze import setup, Executable from cx_Freeze import setup, Executable
setup( setup(
name="onionshare", name="OnionShare",
version=version, version=version,
description=description, description=description,
long_description=long_description, long_description=long_description,
author=author,
author_email=author_email,
url=url,
license=license,
keywords=keywords,
options={ options={
"build_exe": { "build_exe": {
"packages": [], "packages": [],
"excludes": [], "excludes": [],
"include_files": ['resources'] "include_files": ['resources']
} }
}, },
executables=[ executables=[
Executable("install/scripts/onionshare", base=None), Executable("install/scripts/onionshare",
Executable("install/scripts/onionshare-gui", base="Win32GUI") icon="install/onionshare.ico",
] base=None),
) Executable("install/scripts/onionshare-gui",
icon="install/onionshare.ico",
shortcutName="OnionShare",
shortcutDir="ProgramMenuFolder",
base="Win32GUI")
]
)
else: else:
from setuptools import setup images = [
setup( 'resources/images/logo.png',
name='onionshare', 'resources/images/drop_files.png',
version=version, 'resources/images/server_stopped.png',
description=description, 'resources/images/server_started.png',
long_description=long_description, 'resources/images/server_working.png'
author='Micah Lee', ]
author_email='micah@micahflee.com',
url='https://github.com/micahflee/onionshare', locale = [
license="GPL v3", 'resources/locale/cs.json',
keywords='onion, share, onionshare, tor, anonymous, web server', 'resources/locale/de.json',
packages=['onionshare', 'onionshare_gui'], 'resources/locale/en.json',
include_package_data=True, 'resources/locale/eo.json',
scripts=['install/scripts/onionshare', 'install/scripts/onionshare-gui'], 'resources/locale/es.json',
data_files=[ 'resources/locale/fi.json',
(os.path.join(sys.prefix, 'share/applications'), ['install/onionshare.desktop']), 'resources/locale/fr.json',
(os.path.join(sys.prefix, 'share/appdata'), ['install/onionshare.appdata.xml']), 'resources/locale/it.json',
(os.path.join(sys.prefix, 'share/pixmaps'), ['install/onionshare80.xpm']), 'resources/locale/nl.json',
(os.path.join(sys.prefix, 'share/onionshare'), [ 'resources/locale/no.json',
'resources/version.txt', 'resources/locale/pt.json',
'resources/wordlist.txt' 'resources/locale/ru.json',
]), 'resources/locale/tr.json'
(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), html = [
('/usr/share/nautilus-python/extensions/', ['install/scripts/onionshare-nautilus.py']), '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']),
]
)