Always use package.json for WLED_VERSION
Ensures consistency between UI and metadata; fixes release bin names.
This commit is contained in:
@@ -2,6 +2,7 @@ Import('env')
|
|||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
import gzip
|
import gzip
|
||||||
|
import json
|
||||||
|
|
||||||
OUTPUT_DIR = "build_output{}".format(os.path.sep)
|
OUTPUT_DIR = "build_output{}".format(os.path.sep)
|
||||||
#OUTPUT_DIR = os.path.join("build_output")
|
#OUTPUT_DIR = os.path.join("build_output")
|
||||||
@@ -22,7 +23,8 @@ def create_release(source):
|
|||||||
release_name_def = _get_cpp_define_value(env, "WLED_RELEASE_NAME")
|
release_name_def = _get_cpp_define_value(env, "WLED_RELEASE_NAME")
|
||||||
if release_name_def:
|
if release_name_def:
|
||||||
release_name = release_name_def.replace("\\\"", "")
|
release_name = release_name_def.replace("\\\"", "")
|
||||||
version = _get_cpp_define_value(env, "WLED_VERSION")
|
with open("package.json", "r") as package:
|
||||||
|
version = json.load(package)["version"]
|
||||||
release_file = os.path.join(OUTPUT_DIR, "release", f"WLED_{version}_{release_name}.bin")
|
release_file = os.path.join(OUTPUT_DIR, "release", f"WLED_{version}_{release_name}.bin")
|
||||||
release_gz_file = release_file + ".gz"
|
release_gz_file = release_file + ".gz"
|
||||||
print(f"Copying {source} to {release_file}")
|
print(f"Copying {source} to {release_file}")
|
||||||
|
|||||||
@@ -76,15 +76,13 @@ def get_github_repo():
|
|||||||
# Any other unexpected error
|
# Any other unexpected error
|
||||||
return None
|
return None
|
||||||
|
|
||||||
PACKAGE_FILE = "package.json"
|
# WLED version is managed by package.json; this is picked up in several places
|
||||||
|
# - It's integrated in to the UI code
|
||||||
def get_version():
|
# - Here, for wled_metadata.cpp
|
||||||
try:
|
# - The output_bins script
|
||||||
with open(PACKAGE_FILE, "r") as package:
|
# We always take it from package.json to ensure consistency
|
||||||
return json.load(package)["version"]
|
with open("package.json", "r") as package:
|
||||||
except (FileNotFoundError, KeyError, json.JSONDecodeError):
|
WLED_VERSION = json.load(package)["version"]
|
||||||
return None
|
|
||||||
|
|
||||||
|
|
||||||
def has_def(cppdefs, name):
|
def has_def(cppdefs, name):
|
||||||
""" Returns true if a given name is set in a CPPDEFINES collection """
|
""" Returns true if a given name is set in a CPPDEFINES collection """
|
||||||
@@ -104,10 +102,7 @@ def add_wled_metadata_flags(env, node):
|
|||||||
if repo:
|
if repo:
|
||||||
cdefs.append(("WLED_REPO", f"\\\"{repo}\\\""))
|
cdefs.append(("WLED_REPO", f"\\\"{repo}\\\""))
|
||||||
|
|
||||||
if not has_def(cdefs, "WLED_VERSION"):
|
cdefs.append(("WLED_VERSION", WLED_VERSION))
|
||||||
version = get_version()
|
|
||||||
if version:
|
|
||||||
cdefs.append(("WLED_VERSION", version))
|
|
||||||
|
|
||||||
# This transforms the node in to a Builder; it cannot be modified again
|
# This transforms the node in to a Builder; it cannot be modified again
|
||||||
return env.Object(
|
return env.Object(
|
||||||
|
|||||||
Reference in New Issue
Block a user