package io.fathom.cloud.compute.commands; import io.fathom.cloud.commands.Cmdlet; import io.fathom.cloud.commands.TypedCmdlet; import io.fathom.cloud.protobuf.ProtobufYamlWriter; import java.io.OutputStreamWriter; import java.io.Writer; import java.util.List; import org.apache.sshd.common.util.NoCloseOutputStream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.protobuf.Message; public abstract class ListCmdlet extends Cmdlet { private static final Logger log = LoggerFactory.getLogger(TypedCmdlet.class); public ListCmdlet(String command) { super(command); } @Override protected final void run() throws Exception { List<? extends Message> o = run0(); if (o != null) { try (Writer writer = new OutputStreamWriter(new NoCloseOutputStream(stdout))) { ProtobufYamlWriter.serialize(o, writer); } } } protected abstract List<? extends Message> run0() throws Exception; }