Replace the scopt command-line parser with decline
In doing so, the config objects could be significantly reworked or simplified, for instance the myriad of fields related to specifying the input files could be replaced with an ADT such as:
import java.nio.file.Path
import cats.data.{NonEmptyList => Nel}
sealed trait ReadsSource extends Product with Serializable
object ReadsSource {
final case class SelfContained(path: Nel[Path]) extends ReadsSource
final case class Split(index: Nel[Path], forward: Nel[Path]) extends ReadsSource
final case class PairedEnd(index: Nel[Path], forward: Nel[Path], reverse: Nel[Path]) extends ReadsSource
}
Replace the scopt command-line parser with decline
In doing so, the config objects could be significantly reworked or simplified, for instance the myriad of fields related to specifying the input files could be replaced with an ADT such as: