package io.fathom.cloud.commands; import java.io.OutputStreamWriter; import java.io.Writer; import org.apache.sshd.common.util.NoCloseOutputStream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public abstract class TypedCmdlet extends Cmdlet { private static final Logger log = LoggerFactory.getLogger(TypedCmdlet.class); public TypedCmdlet(String command) { super(command); } @Override protected final void run() throws Exception { Object o = run0(); if (o != null) { try (Writer writer = new OutputStreamWriter(new NoCloseOutputStream(stdout))) { YamlWriter yaml = new YamlWriter(writer); yaml.write(o); } } } protected abstract Object run0() throws Exception; }