From 8150edbc43df35f9ce641aa30aa989e71c0827d1 Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Wed, 17 Apr 2024 00:12:06 +0200 Subject: [PATCH] Clean up and refactor package script --- pkgutils.py | 57 ++++++++++++++++++----------------------------------- 1 file changed, 19 insertions(+), 38 deletions(-) diff --git a/pkgutils.py b/pkgutils.py index ae6b79d2..328fe78a 100755 --- a/pkgutils.py +++ b/pkgutils.py @@ -33,6 +33,8 @@ import datetime import subprocess import email.utils +from pathlib import Path + OS_NONE = 0 OS_LINUX = 1 OS_WIN = 2 @@ -54,16 +56,15 @@ def extractVersion(beQuiet: bool = False) -> tuple[str, str, str]: numVers = "0" hexVers = "0x0" relDate = "Unknown" - initFile = os.path.join("novelwriter", "__init__.py") + initFile = Path("novelwriter") / "__init__.py" try: - with open(initFile, mode="r", encoding="utf-8") as inFile: - for aLine in inFile: - if aLine.startswith("__version__"): - numVers = getValue((aLine)) - if aLine.startswith("__hexversion__"): - hexVers = getValue((aLine)) - if aLine.startswith("__date__"): - relDate = getValue((aLine)) + for aLine in initFile.read_text(encoding="utf-8").splitlines(): + if aLine.startswith("__version__"): + numVers = getValue((aLine)) + if aLine.startswith("__hexversion__"): + hexVers = getValue((aLine)) + if aLine.startswith("__date__"): + relDate = getValue((aLine)) except Exception as exc: print("Could not read file: %s" % initFile) print(str(exc)) @@ -88,26 +89,23 @@ def stripVersion(version: str) -> str: def readFile(fileName: str) -> str: """Read an entire file and return as a string.""" - with open(fileName, mode="r", encoding="utf-8") as inFile: - return inFile.read() + return Path(fileName).read_text(encoding="utf-8") -def writeFile(fileName: str, writeText: str) -> None: +def writeFile(fileName: str, text: str) -> None: """Write string to file.""" - with open(fileName, mode="w+", encoding="utf-8") as outFile: - outFile.write(writeText) + Path(fileName).write_text(text, encoding="utf-8") + return -def toUpload(srcPath: str, dstName: str | None = None) -> None: +def toUpload(srcPath: str | Path, dstName: str | None = None) -> None: """Copy a file produced by one of the build functions to the upload directory. The file can optionally be given a new name. """ - uplDir = "dist_upload" - if not os.path.isdir(uplDir): - os.mkdir(uplDir) - if dstName is None: - dstName = os.path.basename(srcPath) - shutil.copyfile(srcPath, os.path.join(uplDir, dstName)) + uplDir = Path("dist_upload") + uplDir.mkdir(exist_ok=True) + srcPath = Path(srcPath) + shutil.copyfile(srcPath, uplDir / (dstName or srcPath.name)) return @@ -1551,19 +1549,6 @@ if __name__ == "__main__": sysArgs = sys.argv.copy() - # Set Target OS - if "--target-linux" in sysArgs: - sysArgs.remove("--target-linux") - targetOS = OS_LINUX - elif "--target-darwin" in sysArgs: - sysArgs.remove("--target-darwin") - targetOS = OS_DARWIN - elif "--target-win" in sysArgs: - sysArgs.remove("--target-win") - targetOS = OS_WIN - else: - targetOS = hostOS - # Sign package if "--sign" in sysArgs: sysArgs.remove("--sign") @@ -1587,10 +1572,6 @@ if __name__ == "__main__": "novelWriter as a package on Linux, Mac and Windows. The available options", "are as follows:", "", - "Some of the commands can be targeted towards a different OS than the host OS.", - "To target the command, add one of '--target-linux', '--target-darwin' or", - "'--target-win'.", - "", "General:", "", " help Print the help message.",