#!/usr/bin/env python

from distutils.core import setup
import distutils.sysconfig
import os

## define some strings (not patterns) to exclude specific files or directories
IGNORE_FILES = [ '.svn' ]

## define the data destination directory (below the python directory - we will fix this for debian in the rules file)
datadir = distutils.sysconfig.get_python_lib()
## remove installation prefix to get relative path
datadir = datadir.replace(distutils.sysconfig.get_config_var("prefix") + os.path.sep, '')
datadir = os.path.join(datadir, 'cryptobox','share')

def getdatafiles(dirs):
	filelist = []
	def listfiles(srcdir):
		## add the files of this directory
		result = [(os.path.join(datadir,srcdir), [ os.path.join(srcdir, f) for f in os.listdir(srcdir) if os.path.isfile(os.path.join(srcdir, f)) and not f in IGNORE_FILES ])]
		## add the files in subdirectories
		for d in os.listdir(os.path.join(srcdir)):
			if os.path.isdir(os.path.join(srcdir,d)) and not d in IGNORE_FILES:
				result.extend(listfiles(os.path.join(srcdir,d)))
		return result
	for d in dirs:
		filelist.extend(listfiles(d))
	return filelist


setup(
	name	= 'cryptobox',
	version	= '0.3.0',
	description	= 'webinterface for handling encrypted disks',
	author	= 'Lars Kruse',
	author_email	= 'devel@sumpfralle.de',
	maintainer	= 'Lars Kruse',
	maintainer_email	= 'devel@sumpfralle.de',
	license	= 'GPL',
	url	= 'http://cryptobox.org',
	packages	= [ 'cryptobox', 'cryptobox.core', 'cryptobox.web', 'cryptobox.plugins', 'cryptobox.tests' ],
	data_files	= getdatafiles(['templates','www-data','lang','plugins','event-scripts','conf-examples']) + [
		(datadir, ['README']),
		(datadir, ['CHANGELOG']),
		(datadir, ['LICENSE'])],
	package_dir	= { 'cryptobox': 'src' },
	scripts	= [ 'bin/CryptoBoxWebserver', 'bin/CryptoBoxRootActions' ],
	classifiers	= [
		'Development Status :: 2 - Beta',
		'Environment	:: Web Environment',
		'Intended Audience :: End Users/Desktop',
		'Intended Audience :: System Administrators',
		'License :: OSI Approved :: GNU General Public License (GPL)',
		'Topic :: System :: Systems Administration',
		'Operating System :: POSIX',
		'Operating System :: Unix',
		'Programming Language :: Python'],
	)

