Write import stats to stats.json.
[lightning.git] / cmd.go
diff --git a/cmd.go b/cmd.go
index 1e86dc701010164ade05e32765762004ceeff42c..2e59e51b76358da62fd519f9e554232cb888560b 100644 (file)
--- a/cmd.go
+++ b/cmd.go
@@ -8,6 +8,8 @@ import (
        "os/exec"
 
        "git.arvados.org/arvados.git/lib/cmd"
+       "github.com/mattn/go-isatty"
+       "github.com/sirupsen/logrus"
 )
 
 var (
@@ -16,13 +18,26 @@ var (
                "-version":  cmd.Version,
                "--version": cmd.Version,
 
+               "ref2genome":         &ref2genome{},
+               "vcf2fasta":          &vcf2fasta{},
                "import":             &importer{},
+               "export":             &exporter{},
                "export-numpy":       &exportNumpy{},
+               "filter":             &filterer{},
                "build-docker-image": &buildDockerImage{},
+               "pca-go":             &goPCA{},
+               "pca-py":             &pythonPCA{},
+               "plot":               &pythonPlot{},
+               "diff-fasta":         &diffFasta{},
+               "stats":              &statscmd{},
+               "merge":              &merger{},
        })
 )
 
 func main() {
+       if !isatty.IsTerminal(os.Stderr.Fd()) {
+               logrus.StandardLogger().Formatter = &logrus.TextFormatter{DisableTimestamp: true}
+       }
        os.Exit(handler.RunCommand(os.Args[0], os.Args[1:], os.Stdin, os.Stdout, os.Stderr))
 }
 
@@ -36,19 +51,23 @@ func (cmd *buildDockerImage) RunCommand(prog string, args []string, stdin io.Rea
        }
        defer os.RemoveAll(tmpdir)
        err = ioutil.WriteFile(tmpdir+"/Dockerfile", []byte(`FROM debian:10
-RUN apt-get update
-RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends bcftools samtools
+RUN DEBIAN_FRONTEND=noninteractive \
+  apt-get update && \
+  apt-get dist-upgrade -y && \
+  apt-get install -y --no-install-recommends bcftools bedtools samtools python2 python3-sklearn python3-matplotlib && \
+  apt-get clean
 `), 0644)
        if err != nil {
                fmt.Fprint(stderr, err)
                return 1
        }
        docker := exec.Command("docker", "build", "--tag=lightning-runtime", tmpdir)
-       docker.Stdout = os.Stdout
-       docker.Stderr = os.Stderr
+       docker.Stdout = stdout
+       docker.Stderr = stderr
        err = docker.Run()
        if err != nil {
                return 1
        }
+       fmt.Fprintf(stderr, "built and tagged new docker image, lightning-runtime\n")
        return 0
 }