|
|
|
#
|
|
|
|
# download_mks_assets.py
|
|
|
|
# Added by HAS_TFT_LVGL_UI to download assets from Makerbase repo
|
|
|
|
#
|
|
|
|
import pioutil
|
|
|
|
if pioutil.is_pio_build():
|
|
|
|
Import("env")
|
|
|
|
import requests,zipfile,tempfile,shutil
|
|
|
|
from pathlib import Path
|
|
|
|
|
|
|
|
url = "https://github.com/makerbase-mks/Mks-Robin-Nano-Marlin2.0-Firmware/archive/0263cdaccf.zip"
|
|
|
|
deps_path = Path(env.Dictionary("PROJECT_LIBDEPS_DIR"))
|
|
|
|
zip_path = deps_path / "mks-assets.zip"
|
|
|
|
assets_path = Path(env.Dictionary("PROJECT_BUILD_DIR"), env.Dictionary("PIOENV"), "assets")
|
|
|
|
|
|
|
|
def download_mks_assets():
|
|
|
|
print("Downloading MKS Assets")
|
|
|
|
r = requests.get(url, stream=True)
|
|
|
|
# the user may have a very clean workspace,
|
|
|
|
# so create the PROJECT_LIBDEPS_DIR directory if not exits
|
|
|
|
if not deps_path.exists():
|
|
|
|
deps_path.mkdir()
|
|
|
|
with zip_path.open('wb') as fd:
|
|
|
|
for chunk in r.iter_content(chunk_size=128):
|
|
|
|
fd.write(chunk)
|
|
|
|
|
|
|
|
def copy_mks_assets():
|
|
|
|
print("Copying MKS Assets")
|
|
|
|
output_path = Path(tempfile.mkdtemp())
|
|
|
|
zip_obj = zipfile.ZipFile(zip_path, 'r')
|
|
|
|
zip_obj.extractall(output_path)
|
|
|
|
zip_obj.close()
|
|
|
|
if assets_path.exists() and not assets_path.is_dir():
|
|
|
|
assets_path.unlink()
|
|
|
|
if not assets_path.exists():
|
|
|
|
assets_path.mkdir()
|
|
|
|
base_path = ''
|
|
|
|
for filename in output_path.iterdir():
|
|
|
|
base_path = filename
|
|
|
|
fw_path = (output_path / base_path / 'Firmware')
|
|
|
|
font_path = fw_path / 'mks_font'
|
|
|
|
for filename in font_path.iterdir():
|
|
|
|
shutil.copy(font_path / filename, assets_path)
|
|
|
|
pic_path = fw_path / 'mks_pic'
|
|
|
|
for filename in pic_path.iterdir():
|
|
|
|
shutil.copy(pic_path / filename, assets_path)
|
|
|
|
shutil.rmtree(output_path, ignore_errors=True)
|
|
|
|
|
|
|
|
if not zip_path.exists():
|
|
|
|
download_mks_assets()
|
|
|
|
|
|
|
|
if not assets_path.exists():
|
|
|
|
copy_mks_assets()
|