s.formatCommandChanges(resp.CommandChanges))
}
if len(changes) == 0 {
- return ""
+ // Notify user that the host was synced successfully
+ return "no changes"
}
- return "\n" + strings.Join(changes, "\n")
+
+ x := strings.Join(changes, "\n")
+ // If quiet is used and only commands without output were executed
+ // then don't prepend a newline so that the whole change output of a
+ // host fits in a single line. This makes the output much more
+ // readable with multiple hosts.
+ if strings.Count(x, "\n") == 1 {
+ return x
+ }
+ return "\n" + x
}
func (s *Sync) formatFileChanges(changes []safcm.FileChange) string {
var buf strings.Builder
- fmt.Fprintf(&buf, "changed %d file(s):", len(changes))
if s.config.DryRun {
- fmt.Fprintf(&buf, " (dry-run)")
+ fmt.Fprintf(&buf, "will change %d file(s): (dry-run)\n",
+ len(changes))
+ } else {
+ fmt.Fprintf(&buf, "changed %d file(s):\n", len(changes))
}
- fmt.Fprintf(&buf, "\n")
for _, x := range changes {
fmt.Fprintf(&buf, "%s:", s.formatTarget(x.Path))
}
fmt.Fprintf(&buf, "\n")
}
-
return buf.String()
}
func formatFileType(info safcm.FileChangeInfo) string {
func (s *Sync) formatPackageChanges(changes []safcm.PackageChange) string {
var buf strings.Builder
- fmt.Fprintf(&buf, "installed %d package(s):", len(changes))
if s.config.DryRun {
- fmt.Fprintf(&buf, " (dry-run)")
+ fmt.Fprintf(&buf, "will install %d package(s): (dry-run)\n",
+ len(changes))
+ } else {
+ fmt.Fprintf(&buf, "installed %d package(s):\n", len(changes))
}
- fmt.Fprintf(&buf, "\n")
for _, x := range changes {
// TODO: indicate if installation failed
fmt.Fprintf(&buf, "%s\n", s.formatTarget(x.Name))
func (s *Sync) formatServiceChanges(changes []safcm.ServiceChange) string {
var buf strings.Builder
- fmt.Fprintf(&buf, "modified %d service(s):", len(changes))
if s.config.DryRun {
- fmt.Fprintf(&buf, " (dry-run)")
+ fmt.Fprintf(&buf, "will modify %d service(s): (dry-run)\n",
+ len(changes))
+ } else {
+ fmt.Fprintf(&buf, "modified %d service(s):\n", len(changes))
}
- fmt.Fprintf(&buf, "\n")
for _, x := range changes {
var info []string
if x.Started {
}
var buf strings.Builder
- fmt.Fprintf(&buf, "executed %d command(s)", len(changes))
+ if s.config.DryRun {
+ fmt.Fprintf(&buf, "will execute %d command(s)", len(changes))
+ } else {
+ fmt.Fprintf(&buf, "executed %d command(s)", len(changes))
+ }
if noOutput > 0 && !s.config.DryRun {
fmt.Fprintf(&buf, ", %d with no output", noOutput)
}