Show More
Commit Description:
Downgrade to slightly earlier .NET to fix macOS issue.
Commit Description:
Downgrade to slightly earlier .NET to fix macOS issue.
File last commit:
Show/Diff file:
Action:
scripts/package.py
158 lines | 5.7 KiB | text/x-python | PythonLexer
Add packaging script.
r22 #!/bin/env python3
import zipfile
import sys
import shutil
Add source support to packager.
r24 import tempfile
import subprocess
Add packaging script.
r22 import os
import pathlib
Update packaging script.
r25 template_directory = pathlib.Path("PackageTemplates/")
macos_template = template_directory / "isometric-park-template.app"
windows_template = template_directory / "isometric-park-windows-template"
Fixes to package script.
r26 linux_template = template_directory / "isometric-park-linux-template"
Add packaging script.
r22
Add Windows support to build script.
r23 sourcedir = "isometric-park-fna/bin/Release"
Update packaging script.
r25 destination_directory = pathlib.Path("isometric-park-fna/bin/")
Add packaging script.
r22
Add source support to packager.
r24
Fixes to package script.
r26 def make_linux(suffix="new"):
new_name = destination_directory / (linux_template.name[:-9] + "-" + suffix)
# shutil.rmtree(new_name)
shutil.copytree(linux_template, new_name)
for (dirpath, _dirname, files) in os.walk(sourcedir):
for file in files:
source = pathlib.Path(dirpath) / file
destination = pathlib.Path(new_name) / os.path.relpath(sourcedir, dirpath) / pathlib.Path(file)
print(source, destination)
if source.parent.is_dir() and not destination.parent.exists():
# shutil.copytree(source.parent, destination.parent)
os.mkdir(destination.parent)
elif source.is_dir() and not destination.exists():
shutil.copytree(source, destination)
else:
shutil.copy2(source, destination)
shutil.move(pathlib.Path(new_name) / "isometric-park-fna.exe",
pathlib.Path(new_name) / "isometric-park.exe")
new_zip_name = new_name.parent / (new_name.name + ".zip")
with zipfile.ZipFile(new_zip_name, "w",
#May be able to use something better on Linux:
compression=zipfile.ZIP_DEFLATED) as f:
for (dirpath, _dirname, files) in os.walk(sourcedir):
for file in files:
source = pathlib.Path(dirpath) / file
f.write(source)
Add packaging script.
r22 def make_windows(suffix="new"):
Update packaging script.
r25 new_name = destination_directory / (windows_template.name[:-9] + "-" + suffix)
Add Windows support to build script.
r23 # shutil.rmtree(new_name)
shutil.copytree(windows_template, new_name)
for (dirpath, _dirname, files) in os.walk(sourcedir):
for file in files:
source = pathlib.Path(dirpath) / file
destination = pathlib.Path(new_name) / os.path.relpath(sourcedir, dirpath) / pathlib.Path(file)
print(source, destination)
Add packaging script.
r22
Fixes to package script.
r26 if source.parent.is_dir() and not destination.parent.exists():
# shutil.copytree(source.parent, destination.parent)
os.mkdir(destination.parent)
elif source.is_dir() and not destination.exists():
Add Windows support to build script.
r23 shutil.copytree(source, destination)
else:
shutil.copy2(source, destination)
shutil.move(pathlib.Path(new_name) / "isometric-park-fna.exe",
pathlib.Path(new_name) / "isometric-park.exe")
Update packaging script.
r25 new_zip_name = new_name.parent / (new_name.name + ".zip")
with zipfile.ZipFile(new_zip_name, "w",
Add Windows support to build script.
r23 #Windows doesn't natively support other formats
#(besides uncompressed) in my testing:
compression=zipfile.ZIP_DEFLATED) as f:
for (dirpath, _dirname, files) in os.walk(sourcedir):
for file in files:
source = pathlib.Path(dirpath) / file
f.write(source)
Add packaging script.
r22
Add source support to packager.
r24
Add packaging script.
r22 def make_macos(suffix="new"):
Downgrade to slightly earlier .NET to fix macOS issue.
r30 new_name = destination_directory / (macos_template.name[:-13] + "-" + suffix + ".app" + "/")
Add packaging script.
r22
Add Windows support to build script.
r23 # shutil.rmtree(new_name)
Add packaging script.
r22 shutil.copytree(macos_template, new_name)
Add Windows support to build script.
r23 for (dirpath, _dirname, files) in os.walk(sourcedir):
Add packaging script.
r22 for file in files:
source = pathlib.Path(dirpath) / file
Fixes to package script.
r26 destination = new_name / "Contents" / "Resources" / os.path.relpath(dirpath, sourcedir) / file
Add packaging script.
r22
print(source, destination)
Fixes to package script.
r26 if source.parent.is_dir() and not destination.parent.exists():
# shutil.copytree(source.parent, destination.parent)
os.mkdir(destination.parent)
elif source.is_dir() and not destination.exists():
Add packaging script.
r22 shutil.copytree(source, destination)
else:
shutil.copy2(source, destination)
shutil.move(pathlib.Path(new_name) / "Contents" / "Resources" / "isometric-park-fna.exe",
pathlib.Path(new_name) / "Contents" / "Resources" / "isometric-park.exe")
Add source support to packager.
r24 def make_source(suffix="new"):
Update packaging script.
r25 new_name = destination_directory / ("isometric-park-source" + "-" + suffix
+ ".zip")
Add source support to packager.
r24
with tempfile.TemporaryDirectory() as temp:
print(subprocess.getoutput(f"hg clone . {temp}"))
Update packaging script.
r25 with zipfile.ZipFile(new_name, "w",
Add source support to packager.
r24 #Windows doesn't natively support other formats
#(besides uncompressed) in my testing:
compression=zipfile.ZIP_DEFLATED) as f:
for (dirpath, _dirname, files) in os.walk(temp):
for file in files:
source = pathlib.Path(dirpath) / file
print(os.path.relpath(source, temp))
Update packaging script.
r25 f.write(source, os.path.relpath(source, temp))
Add source support to packager.
r24
Add packaging script.
r22 def main():
if len(sys.argv) > 1:
command = sys.argv[1]
Add Windows support to build script.
r23 if command.lower() == "macos":
Add packaging script.
r22 if len(sys.argv) > 2:
make_macos(sys.argv[2])
Add Windows support to build script.
r23 else:
make_macos()
elif command.lower() in ("win", "windows"):
if len(sys.argv) > 2:
make_windows(sys.argv[2])
else:
make_windows()
Add source support to packager.
r24 elif command.lower() == "source":
if len(sys.argv) > 2:
make_source(sys.argv[2])
else:
make_source()
Add packaging script.
r22 else:
pass
if __name__ == '__main__':
main()