depot/nix/pkgs/flipperzero-firmware/0002-proto_ver_generator-use-changelog-not-git.patch

66 lines
2.1 KiB
Diff

From 3ee494686859ff54de39d9b9732ea8661182a8aa Mon Sep 17 00:00:00 2001
From: Luke Granger-Brown <git@lukegb.com>
Date: Sat, 2 Mar 2024 00:05:17 +0000
Subject: [PATCH 2/5] proto_ver_generator: use changelog, not git
---
scripts/fbt_tools/fbt_assets.py | 42 ++++++++-------------------------
1 file changed, 10 insertions(+), 32 deletions(-)
diff --git a/scripts/fbt_tools/fbt_assets.py b/scripts/fbt_tools/fbt_assets.py
index 492a66b66..e6e31beae 100644
--- a/scripts/fbt_tools/fbt_assets.py
+++ b/scripts/fbt_tools/fbt_assets.py
@@ -78,39 +78,17 @@ def __invoke_git(args, source_dir):
def _proto_ver_generator(target, source, env):
+ changelog_content = source[0].get_text_contents()
+ for ln in changelog_content.split('\n'):
+ ln = ln.strip()
+ if ln.startswith('## ['):
+ version = ln[len('## ['):-1]
+ break
+ else:
+ print("couldn't parse version from changelog " + str(source[0]))
+ Exit()
target_file = target[0]
- src_dir = source[0].dir.abspath
-
- def fetch(unshallow=False):
- git_args = ["fetch", "--tags"]
- if unshallow:
- git_args.append("--unshallow")
-
- try:
- __invoke_git(git_args, source_dir=src_dir)
- except (subprocess.CalledProcessError, EnvironmentError):
- # Not great, not terrible
- print(fg.boldred("Git: fetch failed"))
-
- def describe():
- try:
- return __invoke_git(
- ["describe", "--tags", "--abbrev=0"],
- source_dir=src_dir,
- )
- except (subprocess.CalledProcessError, EnvironmentError):
- return None
-
- fetch()
- git_describe = describe()
- if not git_describe:
- fetch(unshallow=True)
- git_describe = describe()
-
- if not git_describe:
- raise StopError("Failed to process git tags for protobuf versioning")
-
- git_major, git_minor = git_describe.split(".")
+ git_major, git_minor = version.split(".")
version_file_data = (
"#pragma once",
f"#define PROTOBUF_MAJOR_VERSION {git_major}",
--
2.43.0