Basic biblical tools.
[librarian.git] / setup.py
index 09bb42b..b52c069 100755 (executable)
--- a/setup.py
+++ b/setup.py
@@ -1,21 +1,58 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
-from distutils.core import setup
-from tests.utils import TestCommand
+#
+# This file is part of Librarian, licensed under GNU Affero GPLv3 or later.
+# Copyright © Fundacja Wolne Lektury. See NOTICE for more information.
+#
+import os
+import os.path
+from setuptools import setup, find_packages
+
+
+def whole_tree(prefix, path):
+    files = []
+    for f in (f for f in os.listdir(os.path.join(prefix, path)) if not f[0]=='.'):
+        new_path = os.path.join(path, f)
+        if os.path.isdir(os.path.join(prefix, new_path)):
+            files.extend(whole_tree(prefix, new_path))
+        else:
+            files.append(new_path)
+    return files
+
 
 setup(
     name='librarian',
-    version='1.2.1',
+    version='24.9',
     description='Converter from WolneLektury.pl XML-based language to XHTML, TXT and other formats',
-    author='Marek Stępniowski',
+    author="Marek Stępniowski",
     author_email='marek@stepniowski.com',
-    url='http://redmine.nowoczesnapolska.org.pl/',
-    packages=['librarian', 'tests'],
-    package_dir={'librarian': 'librarian', 'tests': 'tests'},
-    package_data={
-        'librarian': ['*.xslt'],
-        'tests': ['files/dcparser/*.xml', 'files/erroneous/*.xml'],
+    maintainer='Radek Czajka',
+    maintainer_email='radekczajka@wolnelektury.pl',
+    url='http://github.com/fnp/librarian',
+    packages=find_packages(where="src"),
+    package_dir={"": "src"},
+    package_data={'librarian': ['xslt/*.xslt', 'pdf/*', 'fb2/*', 'fonts/*'] +
+                                whole_tree(os.path.join(os.path.dirname(__file__), 'src/librarian'), 'res') +
+                                whole_tree(os.path.join(os.path.dirname(__file__), 'src/librarian'), 'locale')},
+    include_package_data=True,
+    install_requires=[
+        'lxml>=2.2,<5.0',
+        'Pillow>=9.1.0',
+        'texml',
+        'ebooklib',
+        'mutagen',
+        'qrcode',
+        'requests',
+        'fonttools',
+    ],
+    entry_points = {
+        "console_scripts": [
+            "librarian=librarian.command_line:main"
+        ]
     },
-    scripts=['scripts/book2html', 'scripts/book2txt', 'scripts/bookfragments', 'scripts/genslugs'],
-    cmdclass={'test': TestCommand},
+    scripts=[
+             'scripts/book2pdf',
+             'scripts/book2fb2',
+             'scripts/book2cover',
+             ],
 )