created tag v0.3.4
This commit is contained in:
parent
f556fc4c59
commit
d75ebd1422
729 changed files with 120489 additions and 0 deletions
151
v0.3.4/setup.py
Normal file
151
v0.3.4/setup.py
Normal file
|
@ -0,0 +1,151 @@
|
|||
#!/usr/bin/env python
|
||||
#
|
||||
# Copyright 2006 sense.lab e.V.
|
||||
#
|
||||
# This file is part of the CryptoBox.
|
||||
#
|
||||
# The CryptoBox is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# The CryptoBox is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with the CryptoBox; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
# Dependencies: clearsilver(python), cherrypy, python-configobj
|
||||
#
|
||||
|
||||
from distutils.core import setup
|
||||
import distutils.sysconfig
|
||||
import os
|
||||
|
||||
## define some strings (not patterns) to exclude specific files or directories
|
||||
IGNORE_FILES = [ '.svn', 'intl' ]
|
||||
|
||||
## define the data destination directory (below the python directory - for debian this gets overridden the rules file)
|
||||
pydir = distutils.sysconfig.get_python_lib()
|
||||
## remove installation prefix to get relative path
|
||||
pydir = pydir.replace(distutils.sysconfig.get_config_var("prefix") + os.path.sep, '')
|
||||
pydir = os.path.join(pydir, 'cryptobox')
|
||||
|
||||
## shared data dir
|
||||
datadir = os.path.join('share', 'cryptobox-server')
|
||||
## doc dir
|
||||
docdir = os.path.join('share', 'doc', 'cryptobox-server')
|
||||
## configuration directory
|
||||
confdir = os.path.join(os.path.sep, 'etc', 'cryptobox-server')
|
||||
|
||||
|
||||
def listfiles(prefix, src):
|
||||
"""create a list of files below a directory recursively
|
||||
|
||||
If the src contains more then one path element (multiple levels), then only the
|
||||
last one (basename part) is added to the prefix path (e.g.: 'dest','src1/src2' will
|
||||
create a list below 'dest/src2').
|
||||
The result is a list of tuples: (destination, [srcfiles,...]).
|
||||
This is the datatype expected by 'data_files' in setup."""
|
||||
## we will not add the 'dirname' part of srcdir to the destination
|
||||
src_dir, src_base = os.path.split(src)
|
||||
## add the files of this directory
|
||||
result = [(os.path.join(prefix, src_base), [ os.path.join(src, f)
|
||||
for f in os.listdir(src)
|
||||
if os.path.isfile(os.path.join(src, f)) \
|
||||
and not f in IGNORE_FILES ])]
|
||||
## add the files in subdirectories
|
||||
for d in os.listdir(src):
|
||||
if os.path.isdir(os.path.join(src,d)) and not d in IGNORE_FILES:
|
||||
result.extend(listfiles(
|
||||
os.path.join(prefix,src_base), os.path.join(src, d)))
|
||||
return result
|
||||
|
||||
|
||||
def getdatafiles(prefix, dirs):
|
||||
filelist = []
|
||||
for d in dirs:
|
||||
if os.path.isdir(d):
|
||||
filelist.extend(listfiles(prefix, d))
|
||||
else:
|
||||
filelist.append((prefix, [d]))
|
||||
return filelist
|
||||
|
||||
|
||||
def get_language_files(prefix):
|
||||
"""return a destination-file mapping for all compiled language files (*.po)
|
||||
"""
|
||||
import sys
|
||||
mapping = []
|
||||
## find all language directories
|
||||
intl_dirs = []
|
||||
for (root, dirs, files) in os.walk(os.getcwd()):
|
||||
if 'intl' in dirs:
|
||||
intl_dirs.append(os.path.join(root, 'intl'))
|
||||
for i_dir in intl_dirs:
|
||||
for lang_dir in [os.path.join(i_dir, e)
|
||||
for e in os.listdir(i_dir)
|
||||
if os.path.isdir(os.path.join(i_dir, e)) and (not e in IGNORE_FILES)]:
|
||||
po_files = [ os.path.join(lang_dir, e)
|
||||
for e in os.listdir(lang_dir)
|
||||
if os.path.isfile(os.path.join(lang_dir, e)) \
|
||||
and (e[-3:] == '.po') ]
|
||||
lang_files = []
|
||||
for po_file in po_files:
|
||||
if compile_po_file(po_file):
|
||||
lang_files.append(po_file[:-3] + ".mo")
|
||||
else:
|
||||
sys.stderr.write("Failed to compile language file: %s\n" % po_file)
|
||||
mapping.append((os.path.join(
|
||||
prefix, os.path.basename(lang_dir), 'LC_MESSAGES'), lang_files))
|
||||
return mapping
|
||||
|
||||
|
||||
def compile_po_file(po_file):
|
||||
"""compile the binary mo file out of a po file
|
||||
"""
|
||||
import subprocess
|
||||
return subprocess.call( [ "msgfmt", "-o", po_file[:-3] + ".mo", po_file ] ) == 0
|
||||
|
||||
|
||||
setup(
|
||||
name = 'cryptobox-server',
|
||||
version = '0.3.0',
|
||||
description = 'webinterface for handling encrypted disks',
|
||||
author = 'Sense.Lab e.V.',
|
||||
author_email = 'info@cryptobox.org',
|
||||
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(datadir, ['templates', 'www-data', 'plugins']) +
|
||||
getdatafiles(confdir, [os.path.join('conf-examples', 'cryptobox.conf')]) +
|
||||
getdatafiles(os.path.join(confdir, 'events.d'), [
|
||||
os.path.join('event-scripts', 'README'),
|
||||
os.path.join('event-scripts', '_event_scripts_')]) +
|
||||
getdatafiles(docdir, ['conf-examples', 'event-scripts', 'README', 'changelog',
|
||||
'LICENSE', 'copyright', os.path.join('doc', 'html'), 'README.davfs',
|
||||
'README.samba', 'README.proxy', 'README.ssl' ]) +
|
||||
getdatafiles(os.path.join(docdir, 'conf-examples'),
|
||||
[os.path.join('debian', 'cryptobox-server.init')]) +
|
||||
get_language_files(os.path.join('share', 'locale')),
|
||||
package_dir = { '': 'src' },
|
||||
scripts = [ os.path.join('bin', 'CryptoBoxWebserver'),
|
||||
os.path.join('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'],
|
||||
)
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue