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
```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
+5 -1
View File
@@ -1,6 +1,7 @@
package stacks
import (
"fmt"
"os"
"path/filepath"
"strings"
@@ -92,13 +93,16 @@ func LoadMetadata(stackDir string) Metadata {
}
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)
meta.DisplayName = toTitleCase(strings.ReplaceAll(dirName, "-", " "))
meta.Slug = dirName
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
dirName := filepath.Base(stackDir)
if meta.Slug == "" {