Make the setup script a bit more helpful!

This commit is contained in:
Veronica K. B. Olsen
2020-10-29 13:00:38 +01:00
parent e2ab9ed6cf
commit 90ed47b836
+38 -16
View File
@@ -5,23 +5,20 @@ The main setup script for novelWeiter.
It runs the standard setuptool.setup() with all options taken from the
setup.cfg file.
In addtion, a few speicalised commands are available:
* sample: Will build a sample.zip file, which is the way the sample project is
included into distributable packages.
* qthelp: Will build a QtAssistant readable version of the novelWriter
documentation. This should also be a part of distributed packages. It allows
for reading the help offline. Otherwise, the F1 button redirects to the
online documentation only.
* launcher: Will attempt to install novelWriter icons, mime type and create a
launcher for the application.
In addtion, a few speicalised commands are available. These are
described in the help text in the main section.
"""
import os
import sys
import shutil
import subprocess
OS_NONE = 0
OS_LINUX = 1
OS_WIN = 2
OS_DARWIN = 3
# =============================================================================================== #
# Qt Assistant Documentation Builder
# =============================================================================================== #
@@ -285,6 +282,19 @@ def xdgInstall():
# =============================================================================================== #
if __name__ == "__main__":
"""Parse command line options and run the commands.
"""
# Detect OS
if sys.platform.startswith("linux"):
hostOS = OS_LINUX
elif sys.platform.startswith("darwin"):
hostOS = OS_DARWIN
elif sys.platform.startswith("win32"):
hostOS = OS_WIN
elif sys.platform.startswith("cygwin"):
hostOS = OS_WIN
else:
hostOS = OS_NONE
helpMsg = (
"\n"
@@ -292,10 +302,17 @@ if __name__ == "__main__":
"======================\n"
"This tool provides some additional setup commands for novelWriter.\n"
"\n"
"help Print the help message.\n"
"qthelp Build the help documentation for use with the QtAssistant.\n"
"help Print this help message.\n"
"qthelp Build the help documentation for use with the Qt Assistant.\n"
" Run before install to enable in the the installed version.\n"
"sample Build the sample project as a zip file.\n"
" Run before install to enable creating sample projects.\n"
"install Installs novelWriter to the system's Python install location.\n"
" Run as root or with sudo for system-wide install, or as\n"
" user for single user install.\n"
"xdg-install Install launcher and icons for freedesktop systems.\n"
" Run as root or with sudo for system-wide install, or as\n"
" user for single user install.\n"
)
if "help" in sys.argv:
@@ -303,6 +320,11 @@ if __name__ == "__main__":
print(helpMsg)
sys.exit(0)
if "launcher" in sys.argv:
sys.argv.remove("launcher")
print("The 'launcher' option has been replaced by 'xdg-install'.")
sys.exit(1)
if "qthelp" in sys.argv:
sys.argv.remove("qthelp")
buildQtDocs()
@@ -313,11 +335,11 @@ if __name__ == "__main__":
if "xdg-install" in sys.argv:
sys.argv.remove("xdg-install")
if not sys.platform.startswith("win32"):
xdgInstall()
else:
if hostOS == OS_WIN:
print("ERROR: xdg-install cannot be used on Windows")
sys.exit(1)
else:
xdgInstall()
if len(sys.argv) <= 1:
# Nothing more to do