onionshare/setup.py
2014-06-20 01:42:53 -04:00

80 lines
3.2 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os, sys, platform
from glob import glob
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
def file_list(path):
files = []
for filename in os.listdir(path):
if os.path.isfile(path+'/'+filename):
files.append(path+'/'+filename)
return files
version = open('version').read().strip()
args = {}
if platform.system() == 'Darwin':
args['data_files'] = ['LICENSE', 'README.md', 'version']
args['app'] = ['setup/onionshare-launcher.py']
args['options'] = {
'py2app': {
'argv_emulation': True,
'packages': ['flask', 'stem', 'jinja2', 'onionshare_gui', 'onionshare'],
'includes': ['PyQt4'],
'excludes': ['PyQt4.QtDesigner', 'PyQt4.QtOpenGL', 'PyQt4.QtScript', 'PyQt4.QtSql', 'PyQt4.QtTest', 'PyQt4.QtXml', 'PyQt4.phonon'],
'iconfile': 'setup/onionshare.icns',
'site_packages': True,
'plist': {
'CFBundleName': 'OnionShare',
}
}
}
args['setup_requires'] = 'py2app'
elif platform.system() == 'Windows':
import py2exe
args['windows'] = [{'script':'setup/onionshare-launcher.py'}]
args['data_files'] = [
('', ['LICENSE', 'README.md', 'version']),
('onionshare', ['onionshare/index.html', 'onionshare/404.html', 'onionshare/strings.json']),
('onionshare_gui/templates', glob('onionshare_gui/templates/*')),
('onionshare_gui/static', glob('onionshare_gui/static/*'))
]
args['options'] = {
'py2exe': {
'includes': ['sip', 'PyQt4', 'PyQt4.QtNetwork'],
'dll_excludes': ['MSVCP90.dll'],
'packages': ['jinja2', 'flask', 'stem'],
'skip_archive': True
}
}
else:
args['packages'] = ['onionshare', 'onionshare_gui']
args['include_package_data'] = True
args['scripts'] = ['bin/onionshare', 'bin/onionshare-gui']
args['data_files'] = [
('/usr/share/applications', ['setup/onionshare.desktop']),
('/usr/share/pixmaps', ['setup/onionshare80.xpm'])
]
setup(
name='onionshare',
version=version,
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="""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. 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.""",
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',
**args
)