Remove macros

This commit is contained in:
Feodor Fitsner 2025-03-04 11:13:33 -08:00
parent 659ec5cea5
commit e6a8434ff2
4 changed files with 19 additions and 49 deletions

View File

@ -10,5 +10,14 @@ class FoobarExtension(Extension):
@pass_context @pass_context
def get_pyproject(self, context, setting): def get_pyproject(self, context, setting):
pyproject = context.get("cookiecutter", {}) pyproject = context.get("cookiecutter", {}).get("pyproject", {})
return f"Hello, {setting}! (pyproject: {pyproject})"
if not setting:
return pyproject
d = pyproject
for k in setting.split("."):
d = d.get(k)
if d is None:
return None
return d

View File

@ -1,32 +0,0 @@
{# _macros.jinja2 #}
{% macro get_value(dict, path) %}
{# Split the path into keys #}
{% set keys = path.split('.') %}
{% if keys and dict is mapping and keys[0] in dict %}
{% set next_value = dict[keys[0]] %}
{% if keys | length == 1 %}
{{ next_value }}
{% else %}
{{ get_value(next_value, keys[1:] | join('.')) }}
{% endif %}
{% else %}
{{ "" }}
{% endif %}
{% endmacro %}
{% macro get_config_platform(package_platform) %}
{% if package_platform == "Darwin" %}
macos
{% elif package_platform == "Windows" %}
windows
{% elif package_platform == "Linux" %}
linux
{% elif package_platform == "iOS" %}
ios
{% elif package_platform == "Android" %}
android
{% else %}
web
{% endif %}
{% endmacro %}

View File

@ -1,4 +1,3 @@
{% import "_macros.jinja2" as macros %}
plugins { plugins {
id "com.android.application" id "com.android.application"
id "kotlin-android" id "kotlin-android"
@ -50,8 +49,8 @@ android {
main.java.srcDirs += 'src/main/kotlin' main.java.srcDirs += 'src/main/kotlin'
} }
{% set min_sdk_version = macros.get_value(cookiecutter.pyproject, "tool.flet.android.min_sdk_version") | trim %} {% set min_sdk_version = get_pyproject("tool.flet.android.min_sdk_version") %}
{% set target_sdk_version = macros.get_value(cookiecutter.pyproject, "tool.flet.android.target_sdk_version") | trim %} {% set target_sdk_version = get_pyproject("tool.flet.android.target_sdk_version") %}
defaultConfig { defaultConfig {
applicationId "{{ cookiecutter.org_name_2 }}.{{ cookiecutter.package_name }}" applicationId "{{ cookiecutter.org_name_2 }}.{{ cookiecutter.package_name }}"

View File

@ -15,20 +15,14 @@ import 'package:window_manager/window_manager.dart';
import "python.dart"; import "python.dart";
/* /*
{% import "_macros.jinja2" as macros %} {% set splash_screen = get_pyproject("tool.flet." ~ cookiecutter.options.config_platform ~ ".loading_screen")
{% set config_platform = macros.get_config_platform(cookiecutter.options.package_platform) | trim %} or get_pyproject("tool.flet.loading_screen")
{% set splash_screen = (macros.get_value(cookiecutter.pyproject, "tool.flet." ~ config_platform ~ ".loading_screen") | trim) or False %}
or (macros.get_value(cookiecutter.pyproject, "tool.flet.loading_screen") | trim) {% set splash_screen_text = get_pyproject("tool.flet." ~ cookiecutter.options.config_platform ~ ".loading_screen_text")
or "False" %} or get_pyproject("tool.flet.loading_screen_text") %}
{% set splash_screen_text = (macros.get_value(cookiecutter.pyproject, "tool.flet." ~ config_platform ~ ".loading_screen_text") | trim)
or (macros.get_value(cookiecutter.pyproject, "tool.flet.loading_screen_text") | trim) %}
splash_screen: {{ splash_screen }} splash_screen: {{ splash_screen }}
splash_screen_text: {{ splash_screen_text }} splash_screen_text: {{ splash_screen_text }}
Uppercase Example: {{ 2 | foobar }}
get_pyproject: {{ get_pyproject("tool.flet") }}
*/ */
{% for dep in cookiecutter.flutter.dependencies %} {% for dep in cookiecutter.flutter.dependencies %}