Dodge AppData problems on Windows (#32)

This commit is contained in:
Ben Visness 2023-08-09 20:14:59 -05:00 committed by Martin Fouilleul
parent 75621d85a5
commit 570a33a0e1
2 changed files with 17 additions and 2 deletions

View File

@ -1,4 +1,3 @@
import argparse
from datetime import datetime
import glob
import os
@ -506,12 +505,25 @@ def install(args):
bin_dir = os.path.join(dest, "bin")
yeet(bin_dir)
# The MS Store version of Python does some really stupid stuff with AppData:
# https://git.handmade.network/hmn/orca/issues/32
#
# Any new files and folders created in AppData actually get created in a special
# folder specific to the Python version. However, if the files or folders already
# exist, the redirect does not happen. So, if we first use the shell to create the
# paths we need, the following scripts work regardless of Python install.
#
# Also apparently you can't just do mkdir in a subprocess call here, hence the
# trivial batch script.
if platform.system() == "Windows":
subprocess.run(["scripts\\mkdir.bat", bin_dir], check=True)
shutil.copytree("scripts", os.path.join(bin_dir, "sys_scripts"))
shutil.copy("orca", bin_dir)
if platform.system() == "Windows":
shutil.copy("orca.bat", bin_dir)
# TODO: Customize these instructions for Windows
print()
if platform.system() == "Windows":
print("The Orca tools have been installed. Make sure the Orca tools are on your PATH by")

3
scripts/mkdir.bat Normal file
View File

@ -0,0 +1,3 @@
@echo off
mkdir %1
exit /b %errorlevel%