#!/usr/bin/env python3 import os import sys import shutil import subprocess import setuptools from nw import __version__, __url__, __docurl__, __issuesurl__, __sourceurl__ ## # Build the Package ## buildDocs = False if "qthelp" in sys.argv: buildDocs = True sys.argv.remove("qthelp") if buildDocs: buildDir = os.path.join("docs", "build", "qthelp") helpDir = os.path.join("nw", "assets", "help") inFile = "novelWriter.qhcp" outFile = "novelWriter.qhc" datFile = "novelWriter.qch" print("") print("Building Documentation") print("======================") print("") buildFail = False try: subprocess.call(["make","-C", "docs", "qthelp"]) except Exception as e: print("Failed with error:") print(str(e)) buildFail = True try: subprocess.call(["qhelpgenerator", os.path.join(buildDir, inFile)]) except Exception as e: print("Failed with error:") print(str(e)) buildFail = True if not os.path.isdir(helpDir): try: os.mkdir(helpDir) except Exception as e: print("Failed with error:") print(str(e)) buildFail = True try: if os.path.isfile(os.path.join(helpDir, outFile)): os.unlink(os.path.join(helpDir, outFile)) if os.path.isfile(os.path.join(helpDir, datFile)): os.unlink(os.path.join(helpDir, datFile)) os.rename(os.path.join(buildDir, outFile), os.path.join(helpDir, outFile)) os.rename(os.path.join(buildDir, datFile), os.path.join(helpDir, datFile)) except Exception as e: print("Failed with error:") print(str(e)) buildFail = True print("") if buildFail: print("Documentation build: FAILED") else: print("Documentation build: OK") print("") if len(sys.argv) == 1: # Nothing more to do sys.exit(0) ## # Build the Package ## # Read content from files with open("README.md", "r") as inFile: longDescription = inFile.read() with open("requirements.txt", "r") as inFile: pkgRequirements = inFile.read().strip().splitlines() setuptools.setup( name = "novelWriter", version = __version__, author = "Veronica Berglyd Olsen", author_email = "code@vkbo.net", description = "A markdown-like document editor for writing novels", long_description = longDescription, long_description_content_type = "text/markdown", license = "GNU General Public License v3", url = __url__, entry_points = { "console_scripts" : ["novelWriter-cli=nw:main"], "gui_scripts" : ["novelWriter=nw:main"], }, packages = setuptools.find_packages(exclude=["docs","tests","sample"]), include_package_data = True, package_data = {"": ["*.conf"]}, project_urls = { "Bug Tracker": __issuesurl__, "Documentation": __docurl__, "Source Code": __sourceurl__, }, classifiers = [ "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: Implementation :: CPython", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Development Status :: 4 - Beta", "Operating System :: OS Independent", "Intended Audience :: End Users/Desktop", "Natural Language :: English", "Topic :: Text Editors", ], python_requires = ">=3.6", install_requires = pkgRequirements, )