mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-21 01:36:02 +08:00
- Add generate-all-bindings.sh script with logging support - Add GitHub Action to check if spine-c bindings are up-to-date - Update spine-flutter/generate-bindings.sh to use logging.sh - Action only runs on branches >= 4.3 (including beta versions) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
Terminal Logging Style Guide
Functions
source ../formatters/logging/logging.sh
log_title "Script Name" # Bold title
log_action "Doing something" # Action with inline result
log_ok # Green ✓
log_fail # Red ✗
log_warn # Yellow !
log_skip # Gray -
log_error_output "$OUTPUT" # Show command output on errors
log_detail "Extra info" # Gray secondary text
log_summary "✓ All done" # Bold conclusion
Pattern
log_title "Spine-C++ Build"
log_action "Configuring debug build"
if CMAKE_OUTPUT=$(cmake --preset=debug . 2>&1); then
log_ok
else
log_fail
log_error_output "$CMAKE_OUTPUT"
exit 1
fi
log_action "Building"
if BUILD_OUTPUT=$(cmake --build --preset=debug 2>&1); then
log_ok
else
log_fail
log_error_output "$BUILD_OUTPUT"
exit 1
fi
Output
Spine-C++ Build
Configuring debug build... ✓
Building... ✓
Rules
- Always capture command output of commands following log_action:
OUTPUT=$(command 2>&1) - Show errors prominently with
log_error_output - Use inline results:
log_action+log_ok/fail - Let sub-scripts handle their own logging, e.g. do not log "Building Spine-C++" when calling
spine-cpp/build.sh - Do not capture output of sub-scripts like you do for "normal" commands. That would swallow their logging.
Automatic Indentation
The logging system automatically detects when scripts call other scripts and indents the child script output to show the hierarchy:
- Main script: No extra indentation
- Child scripts: Automatically indented based on nesting level
- Child script actions: Further indented to show they're sub-operations
Example:
Spine Runtimes Code Formatter
C/C++ Formatting
Checking for formatters/.clang-format... ✓
Formatting 908 C/C++ files... ✓
Java Formatting
Formatting 122 Java files... ✓
✓ All formatting completed
This happens automatically - no changes needed in your scripts. Each script detects its nesting level when logging.sh is sourced.