diff --git a/CHANGELOG.md b/CHANGELOG.md index 53bca146..dfe0d8cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -41,6 +41,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ## v4.5.6, unreleased +### Added + +- Show more information during `wwctl container ` about when and if the container image will be rebuilt. #1302 + ### Fixed - Ensure autobuilt overlays include contextual overlay contents. #1296 diff --git a/internal/app/wwctl/container/exec/child/main.go b/internal/app/wwctl/container/exec/child/main.go index a6502111..715e0db8 100644 --- a/internal/app/wwctl/container/exec/child/main.go +++ b/internal/app/wwctl/container/exec/child/main.go @@ -21,6 +21,11 @@ import ( "github.com/warewulf/warewulf/internal/pkg/wwlog" ) +const exitEval = `$(VALU="$?" ; if [ $VALU == 0 ]; then echo write; else echo discard; fi)` +const msgStr = `Changes are written back to container and image is rebuilt +depending on exit status of last called program. +Type "true" or "false" to enforce or abort image rebuilt.` + func CobraRunE(cmd *cobra.Command, args []string) (err error) { if os.Getpid() != 1 { wwlog.Error("PID is not 1: %d", os.Getpid()) @@ -79,7 +84,8 @@ func CobraRunE(cmd *cobra.Command, args []string) (err error) { if err != nil { return errors.Wrap(err, "failed to mount") } - ps1Str := fmt.Sprintf("[%s] Warewulf> ", containerName) + ps1Str := fmt.Sprintf("[%s|%s] Warewulf> ", exitEval, containerName) + wwlog.Info(msgStr) if len(lowerObjects) != 0 && nodename == "" { options := fmt.Sprintf("lowerdir=%s,upperdir=%s,workdir=%s", path.Join(runDir, "lower"), containerPath, path.Join(runDir, "work"))