You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.9 KiB
Python
52 lines
1.9 KiB
Python
#
|
|
# buildroot/share/PlatformIO/scripts/download_mks_assets.py
|
|
# Added by HAS_TFT_LVGL_UI to download assets from Makerbase repo
|
|
#
|
|
Import("env")
|
|
import os,requests,zipfile,tempfile,shutil,pioutil
|
|
|
|
# Detect that 'vscode init' is running
|
|
if pioutil.is_vscode_init():
|
|
env.Exit(0)
|
|
|
|
url = "https://github.com/makerbase-mks/Mks-Robin-Nano-Marlin2.0-Firmware/archive/0263cdaccf.zip"
|
|
deps_path = env.Dictionary("PROJECT_LIBDEPS_DIR")
|
|
zip_path = os.path.join(deps_path, "mks-assets.zip")
|
|
assets_path = os.path.join(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 os.path.exists(deps_path) == False:
|
|
os.mkdir(deps_path)
|
|
with open(zip_path, '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 = tempfile.mkdtemp()
|
|
zip_obj = zipfile.ZipFile(zip_path, 'r')
|
|
zip_obj.extractall(output_path)
|
|
zip_obj.close()
|
|
if os.path.exists(assets_path) == True and os.path.isdir(assets_path) == False:
|
|
os.unlink(assets_path)
|
|
if os.path.exists(assets_path) == False:
|
|
os.mkdir(assets_path)
|
|
base_path = ''
|
|
for filename in os.listdir(output_path):
|
|
base_path = filename
|
|
for filename in os.listdir(os.path.join(output_path, base_path, 'Firmware', 'mks_font')):
|
|
shutil.copy(os.path.join(output_path, base_path, 'Firmware', 'mks_font', filename), assets_path)
|
|
for filename in os.listdir(os.path.join(output_path, base_path, 'Firmware', 'mks_pic')):
|
|
shutil.copy(os.path.join(output_path, base_path, 'Firmware', 'mks_pic', filename), assets_path)
|
|
shutil.rmtree(output_path, ignore_errors=True)
|
|
|
|
if os.path.exists(zip_path) == False:
|
|
download_mks_assets()
|
|
|
|
if os.path.exists(assets_path) == False:
|
|
copy_mks_assets()
|