2014-05-23 11:37:10 -04:00
#!/usr/bin/env python
# -*- coding: utf-8 -*-
2014-06-20 00:02:58 -04:00
import os , sys , platform
from glob import glob
2014-05-23 11:37:10 -04:00
try :
from setuptools import setup
except ImportError :
from distutils . core import setup
2014-06-20 00:03:30 -04:00
def file_list ( path ) :
files = [ ]
for filename in os . listdir ( path ) :
if os . path . isfile ( path + ' / ' + filename ) :
files . append ( path + ' / ' + filename )
return files
2014-06-09 23:31:57 -04:00
version = open ( ' version ' ) . read ( ) . strip ( )
2014-06-12 19:50:46 -04:00
args = { }
2014-06-10 13:31:19 -04:00
if platform . system ( ) == ' Darwin ' :
2014-06-20 01:05:56 -04:00
args [ ' data_files ' ] = [ ' LICENSE ' , ' README.md ' , ' version ' ]
args [ ' app ' ] = [ ' setup/onionshare-launcher.py ' ]
2014-06-12 19:50:46 -04:00
args [ ' options ' ] = {
2014-06-10 13:31:19 -04:00
' py2app ' : {
' argv_emulation ' : True ,
2014-06-20 01:05:56 -04:00
' packages ' : [ ' flask ' , ' stem ' , ' jinja2 ' , ' onionshare_gui ' , ' onionshare ' ] ,
' includes ' : [ ' PyQt4 ' ] ,
' excludes ' : [ ' PyQt4.QtDesigner ' , ' PyQt4.QtOpenGL ' , ' PyQt4.QtScript ' , ' PyQt4.QtSql ' , ' PyQt4.QtTest ' , ' PyQt4.QtXml ' , ' PyQt4.phonon ' ] ,
2014-06-11 00:02:16 -04:00
' iconfile ' : ' setup/onionshare.icns ' ,
2014-06-10 13:31:19 -04:00
' site_packages ' : True ,
' plist ' : {
' CFBundleName ' : ' OnionShare ' ,
}
}
}
2014-06-20 01:05:56 -04:00
args [ ' setup_requires ' ] = ' py2app '
2014-06-09 23:03:37 -04:00
2014-06-12 19:50:46 -04:00
elif platform . system ( ) == ' Windows ' :
2014-06-20 01:42:53 -04:00
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
}
}
2014-06-20 00:02:58 -04:00
2014-06-12 19:50:46 -04:00
else :
2014-06-20 00:05:25 -04:00
args [ ' packages ' ] = [ ' onionshare ' , ' onionshare_gui ' ]
args [ ' include_package_data ' ] = True
args [ ' scripts ' ] = [ ' bin/onionshare ' , ' bin/onionshare-gui ' ]
2014-06-12 19:50:46 -04:00
args [ ' data_files ' ] = [
( ' /usr/share/applications ' , [ ' setup/onionshare.desktop ' ] ) ,
( ' /usr/share/pixmaps ' , [ ' setup/onionshare80.xpm ' ] )
]
2014-05-23 11:37:10 -04:00
setup (
name = ' onionshare ' ,
2014-06-09 23:31:57 -04:00
version = version ,
2014-05-24 20:43:20 -04:00
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. """ ,
2014-05-23 11:37:10 -04:00
author = ' Micah Lee ' ,
author_email = ' micah@micahflee.com ' ,
url = ' https://github.com/micahflee/onionshare ' ,
2014-06-12 19:50:46 -04:00
license = " GPL v3 " ,
keywords = ' onion, share, onionshare, tor, anonymous, web server ' ,
* * args
2014-06-20 00:02:58 -04:00
)