add error logging to LoadMetadata, fix deploy sed command

- Log YAML parse errors in LoadMetadata instead of silently swallowing
- Add debug log for successful metadata loads (tagline, useCases, optConfig counts)
- Fix CLAUDE.md deploy command: use sudo, target only image: line in sed

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-14 20:46:58 +01:00
parent 54ccf40066
commit 68c67dafe6
2 changed files with 6 additions and 2 deletions
+1 -1
View File
@@ -113,7 +113,7 @@ The build script:
### Step 3: Deploy on the demo node ### Step 3: Deploy on the demo node
```bash ```bash
ssh kisfenyo@192.168.0.162 "cd /opt/docker/felhom-controller && docker pull gitea.dooplex.hu/admin/felhom-controller:<NEW_VERSION> && sed -i 's|felhom-controller:[^ ]*|felhom-controller:<NEW_VERSION>|' docker-compose.yml && docker compose up -d" ssh kisfenyo@192.168.0.162 "cd /opt/docker/felhom-controller && sudo docker pull gitea.dooplex.hu/admin/felhom-controller:<NEW_VERSION> && sudo sed -i 's|image: gitea.dooplex.hu/admin/felhom-controller:.*|image: gitea.dooplex.hu/admin/felhom-controller:<NEW_VERSION>|' docker-compose.yml && sudo docker compose up -d"
``` ```
### Step 4: Verify the deployment ### Step 4: Verify the deployment
+5 -1
View File
@@ -1,6 +1,7 @@
package stacks package stacks
import ( import (
"fmt"
"os" "os"
"path/filepath" "path/filepath"
"strings" "strings"
@@ -92,13 +93,16 @@ func LoadMetadata(stackDir string) Metadata {
} }
if err := yaml.Unmarshal(data, &meta); err != nil { if err := yaml.Unmarshal(data, &meta); err != nil {
// Parse error — still return defaults fmt.Fprintf(os.Stderr, "[ERROR] Failed to parse .felhom.yml in %s: %v\n", stackDir, err)
dirName := filepath.Base(stackDir) dirName := filepath.Base(stackDir)
meta.DisplayName = toTitleCase(strings.ReplaceAll(dirName, "-", " ")) meta.DisplayName = toTitleCase(strings.ReplaceAll(dirName, "-", " "))
meta.Slug = dirName meta.Slug = dirName
return meta return meta
} }
fmt.Fprintf(os.Stderr, "[DEBUG] Loaded metadata for %s: tagline=%q, useCases=%d, optConfig=%d\n",
filepath.Base(stackDir), meta.AppInfo.Tagline, len(meta.AppInfo.UseCases), len(meta.OptionalConfig))
// Fill in defaults for missing fields // Fill in defaults for missing fields
dirName := filepath.Base(stackDir) dirName := filepath.Base(stackDir)
if meta.Slug == "" { if meta.Slug == "" {