Improve setup for Windows

This commit is contained in:
Veronica K. B. Olsen
2021-02-03 16:58:42 +01:00
parent b62fafe520
commit 05989fdc58
5 changed files with 60 additions and 22 deletions
+3 -3
View File
@@ -1,9 +1,9 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
novelWriter Linux Start Script
================================
The main start script for Linux
novelWriter Terminal Start Script
===================================
The main start script for the terminal
"""
import sys
+1 -1
View File
@@ -3,7 +3,7 @@
"""
novelWriter Windows Start Script
==================================
The main start script for Windows
The main start script for Windows GUI
"""
import os
+25 -14
View File
@@ -49,7 +49,7 @@ def installPackages(hostOS):
"""
print("")
print("Installing Dependencies")
print("#######################")
print("=======================")
print("")
installQueue = ["pip", "-r requirements.txt"]
@@ -427,7 +427,7 @@ def freezePackage(buildWindowed, oneFile, makeSetup, hostOS):
print("")
print("Running PyInstaller")
print("###################")
print("===================")
print("")
if hostOS == OS_WIN:
@@ -685,6 +685,7 @@ def xdgInstall():
def winInstall():
"""Will attempt to install icons and make a launcher for Windows.
"""
import winreg
from nw import __version__, __hexversion__
try:
import win32com.client
@@ -723,18 +724,6 @@ def winInstall():
targetPy = os.path.join(targetDir, "novelWriter.pyw")
targetIcon = os.path.join(targetDir, "setup", "icons", "novelwriter.ico")
os.curdir = os.path.dirname(__file__)
with open(targetPy, mode="w") as outFile:
outFile.write(
"#!/usr/bin/env python3\n"
"# -*- coding: utf-8 -*-\n\n"
"import os\n\n"
"os.curdir = os.path.abspath(os.path.dirname(__file__))\n\n"
"if __name__ == \"__main__\":\n"
" import nw\n"
" nw.main()\n"
)
print("Collecting Info ...")
print("Desktop Folder: %s" % desktopDir)
print("Start Menu Folder: %s" % startMenuDir)
@@ -782,6 +771,28 @@ def winInstall():
wShortcut.save()
print("Created: %s" % startMenuIcon)
print("")
print("Creating registry keys ...")
def setKey(kPath, kName, kVal):
winreg.CreateKey(winreg.HKEY_CURRENT_USER, kPath)
regKey = winreg.OpenKey(winreg.HKEY_CURRENT_USER, kPath, 0, winreg.KEY_WRITE)
winreg.SetValueEx(regKey, kName, 0, winreg.REG_SZ, kVal)
winreg.CloseKey(regKey)
mimeIcon = os.path.join(targetDir, "assets", "icons", "x-novelwriter-project.ico")
mimeExec = '"%s" "%s" "%%1"' % (pythonExe, targetPy)
try:
setKey(r"Software\Classes\.nwx\OpenWithProgids", "novelWriterProject.nwx", "")
setKey(r"Software\Classes\novelWriterProject.nwx", "", "novelWriter Project File")
setKey(r"Software\Classes\novelWriterProject.nwx\DefaultIcon", "", mimeIcon)
setKey(r"Software\Classes\novelWriterProject.nwx\shell\open\command", "", mimeExec)
setKey(r"Software\Classes\Applications\novelWriter.pyw\SupportedTypes", ".nwx", "")
except WindowsError:
print("ERROR: Failed to set registry keys.")
print("")
print("")
print("Done!")
print("")
+31
View File
@@ -0,0 +1,31 @@
@echo off
:: Check for Python Installation
echo.
echo Looking for Python
python --version 2>NUL
if errorlevel 1 goto errorNoPython
echo Python found. OK.
echo.
:: Generate the sample project
python setup.py sample
:: Install the PyQt5, lxml and pyenchant dependencies
python setup.py pip
:: Create the desktop and start menu icons
python setup.py win-install
pause
goto:eof
:errorNoPython
echo.
echo ERROR^: Python is not installed on your system, or cannot be found.
echo.
echo Please download and install it from https://www.python.org/downloads/
echo Also make sure the "Add Python to PATH" option is selected during installation.
echo.
pause
-4
View File
@@ -1,4 +0,0 @@
@echo off
python setup.py pip
python setup.py win-install
pause