package
0.0.0-20230414081408-455f122efe7a
Repository: https://github.com/lijiang2014/cwl.git
Documentation: pkg.go.dev

# README

This library contains code for processing and executing CWL documents, such as CommandLineTools.

This code is experimental, young, and buggy, however it is able to bind inputs, generate command line arguments, and bind outputs. Currently the focus is on supporting CommandLineTool processing. Last checked (3/14/2018), about 15/68 conformance tests were passing.

Example

package main

import (
  "fmt"
  "github.com/buchanae/cwl"
  "github.com/buchanae/cwl/process"
  localfs "github.com/buchanae/cwl/process/fs/local"
)

func main() {
  // must be run from /examples dir
  path := "tar-param.cwl"
  inputsPath := "tar-param.inputs.yml"

  vals, err := cwl.LoadValuesFile(inputsPath)
  if err != nil {
    fmt.Println("error loading inputs:", err)
    return
  }

  doc, err := cwl.Load(path)
  if err != nil {
    panic(err)
  }

  tool, ok := doc.(*cwl.Tool)
  if !ok {
    panic("can only run command line tools")
  }

  rt := process.Runtime{}
  fs := localfs.NewLocal(".")

  proc, err := process.NewProcess(tool, vals, rt, fs)
  if err != nil {
    panic(err)
  }

  cmd, err := proc.Command()
  if err != nil {
    panic(err)
  }
  fmt.Println(cmd)
}

TODO / Questions

  • This may be a relative reference, in which case it must be resolved using the base IRI of the document. Does this mean relative to the inputs document?

# Packages

No description provided by the author
No description provided by the author
No description provided by the author

# Functions

DebugWorkflow is a temporary placeholder for workflow processing code.
No description provided by the author

# Constants

No description provided by the author

# Variables

No description provided by the author

# Structs

Binding binds an input type description (string, array, record, etc) to a concrete input value.
No description provided by the author
No description provided by the author
TODO this is provided to expressions early on in process processing, but it won't have real values from a scheduler until much later.

# Interfaces

No description provided by the author

# Type aliases

No description provided by the author