1ddf32408eaf3a9ab95fed91e9385d47f113936a
[librarian.git] / setup.py
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 #
4 # This file is part of Librarian, licensed under GNU Affero GPLv3 or later.
5 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
6 #
7 import os
8 import os.path
9 from setuptools import setup, find_packages
10
11 def whole_tree(prefix, path):
12     files = []
13     for f in (f for f in os.listdir(os.path.join(prefix, path)) if not f[0]=='.'):
14         new_path = os.path.join(path, f)
15         if os.path.isdir(os.path.join(prefix, new_path)):
16             files.extend(whole_tree(prefix, new_path))
17         else:
18             files.append(new_path)
19     return files
20
21
22 setup(
23     name='librarian',
24     version='1.8.3',
25     description='Converter from WolneLektury.pl XML-based language to XHTML, TXT and other formats',
26     author="Marek Stępniowski",
27     author_email='marek@stepniowski.com',
28     maintainer='Radek Czajka',
29     maintainer_email='radoslaw.czajka@nowoczesnapolska.org.pl',
30     url='http://github.com/fnp/librarian',
31     packages=find_packages(where="src"),
32     package_dir={"": "src"},
33     package_data={'librarian': ['xslt/*.xslt', 'xslt/*.xml', 'epub/*', 'pdf/*', 'fb2/*', 'fonts/*'] +
34                                 whole_tree(os.path.join(os.path.dirname(__file__), 'src/librarian'), 'res') +
35                                 whole_tree(os.path.join(os.path.dirname(__file__), 'src/librarian'), 'font-optimizer')},
36     include_package_data=True,
37     install_requires=[
38         'lxml>=2.2,<=4.3',
39         'Pillow',
40         'six',
41         'texml',
42         'ebooklib',
43     ],
44     entry_points = {
45         "console_scripts": [
46             "librarian=librarian.command_line:main"
47         ]
48     },
49     scripts=['scripts/book2html',
50              'scripts/book2txt',
51              'scripts/book2epub',
52              'scripts/book2mobi',
53              'scripts/book2pdf',
54              'scripts/book2fb2',
55              'scripts/book2partner',
56              'scripts/book2cover',
57              'scripts/bookfragments',
58              'scripts/genslugs'],
59 )