From cd586ed0ecba0e44b881039f7df23013db09499c Mon Sep 17 00:00:00 2001 From: Lino Schmidt Date: Fri, 17 Jun 2022 14:11:07 +0200 Subject: [PATCH] Fixed script installs unused blender versions --- package.json | 1 + scripts/download-blender.py | 78 ++++++++++++++++++++++--------------- 2 files changed, 48 insertions(+), 31 deletions(-) diff --git a/package.json b/package.json index cc2f141..82bdc63 100644 --- a/package.json +++ b/package.json @@ -7,6 +7,7 @@ "scripts": { "install:win32": "python ./scripts/download-blender.py", "install:linux": "python3 ./scripts/download-blender.py", + "install:darwin": "python3 ./scripts/download-blender.py", "install": "run-script-os", "build:main": "cross-env NODE_ENV=production webpack --config configs/webpack.main.prod.config.babel.js", "build:renderer": "cross-env NODE_ENV=production webpack --config configs/webpack.renderer.prod.config.babel.js", diff --git a/scripts/download-blender.py b/scripts/download-blender.py index 3432f25..3da842b 100644 --- a/scripts/download-blender.py +++ b/scripts/download-blender.py @@ -1,44 +1,60 @@ from io import BytesIO +import platform import urllib.request from zipfile import ZipFile import tarfile import os import shutil -import time windowsURL = 'https://ftp.halifax.rwth-aachen.de/blender/release/Blender3.2/blender-3.2.0-windows-x64.zip' linuxURL = 'https://ftp.halifax.rwth-aachen.de/blender/release/Blender3.2/blender-3.2.0-linux-x64.tar.xz' -# Windows -if(os.path.exists('./dependencies/windows')): - print("Removing old windows folder") - shutil.rmtree('./dependencies/windows') - -print("Downloading windows version") -with urllib.request.urlopen(windowsURL) as zipresp: - with ZipFile(BytesIO(zipresp.read())) as zfile: - zfile.extractall('./dependencies/windows') - -print("Adjust windows version") -oldWindowsName = windowsURL.split('/')[-1].replace('.zip', '') -os.rename('./dependencies/windows/' + oldWindowsName, './dependencies/windows/blender') - -# Linux -if(os.path.exists('./dependencies/linux')): - print("Removing old linux folder") - shutil.rmtree('./dependencies/linux') +if(platform.system() == 'Windows'): + if(os.path.exists('./dependencies/windows')): + print("Removing old windows folder") + shutil.rmtree('./dependencies/windows') -print("Downloading linux version") -os.mkdir('./dependencies/linux') + print("Downloading windows version") + with urllib.request.urlopen(windowsURL) as zipresp: + with ZipFile(BytesIO(zipresp.read())) as zfile: + zfile.extractall('./dependencies/windows') + + print("Adjust windows version") + oldWindowsName = windowsURL.split('/')[-1].replace('.zip', '') + os.rename('./dependencies/windows/' + oldWindowsName, './dependencies/windows/blender') -urllib.request.urlretrieve(linuxURL, './dependencies/linux/blender.tar.xz') -print("Extracting linux version") -with tarfile.open('./dependencies/linux/blender.tar.xz') as tfile: - tfile.extractall('./dependencies/linux') +if(platform.system() == 'Linux'): + if(os.path.exists('./dependencies/linux')): + print("Removing old linux folder") + shutil.rmtree('./dependencies/linux') -print("Adjust linux version") -oldLinuxName = linuxURL.split('/')[-1].replace('.tar.xz', '') -os.rename('./dependencies/linux/' + oldLinuxName, './dependencies/linux/blender') - -print("Clean up linux folder") -os.remove('./dependencies/linux/blender.tar.xz') \ No newline at end of file + print("Downloading linux version") + os.mkdir('./dependencies/linux') + + urllib.request.urlretrieve(linuxURL, './dependencies/linux/blender.tar.xz') + print("Extracting linux version") + with tarfile.open('./dependencies/linux/blender.tar.xz') as tfile: + tfile.extractall('./dependencies/linux') + + print("Adjust linux version") + oldLinuxName = linuxURL.split('/')[-1].replace('.tar.xz', '') + os.rename('./dependencies/linux/' + oldLinuxName, './dependencies/linux/blender') + + print("Clean up linux folder") + os.remove('./dependencies/linux/blender.tar.xz') + +if(platform.system() == 'Darwin'): + if(os.path.exists('./dependencies/darwin')): + print("Removing old darwin folder") + shutil.rmtree('./dependencies/darwin') + + print("Darwin is not supported yet!") + + # TODO: Add darwin support as following: + # - look for blender + # -- if blender not found, ask user to install blender or let the script do it + # --- if user wants the script to install blender, download the installer + # --- ask the user to follow the installer + # - try copy the blender files into the dependencies blender folder + # -- if it doesn't work, ask the user for admin rights and try to copy again + # remove the "Darwin is not supported yet!" comment \ No newline at end of file