X-Git-Url: https://git.arvados.org/lightning.git/blobdiff_plain/afcd9e08f6274c58262b81d94ed160bda79d8fa5..56bfceeaedc235866704decc588f56c67edd4605:/cmd.go diff --git a/cmd.go b/cmd.go index 713e1d815d..514bd1ebb4 100644 --- a/cmd.go +++ b/cmd.go @@ -1,4 +1,8 @@ -package main +// Copyright (C) The Lightning Authors. All rights reserved. +// +// SPDX-License-Identifier: AGPL-3.0 + +package lightning import ( "fmt" @@ -6,8 +10,12 @@ import ( "io/ioutil" "os" "os/exec" + "runtime/debug" + "strings" "git.arvados.org/arvados.git/lib/cmd" + "github.com/mattn/go-isatty" + "github.com/sirupsen/logrus" ) var ( @@ -16,12 +24,43 @@ var ( "-version": cmd.Version, "--version": cmd.Version, - "gvcf2numpy": &gvcf2numpy{}, + "ref2genome": &ref2genome{}, + "vcf2fasta": &vcf2fasta{}, + "import": &importer{}, + "annotate": &annotatecmd{}, + "export": &exporter{}, + "export-numpy": &exportNumpy{}, + "flake": &flakecmd{}, + "slice": &slicecmd{}, + "slice-numpy": &sliceNumpy{}, + "anno2vcf": &anno2vcf{}, + "numpy-comvar": &numpyComVar{}, + "filter": &filtercmd{}, "build-docker-image": &buildDockerImage{}, + "pca-go": &goPCA{}, + "pca-py": &pythonPCA{}, + "plot": &pythonPlot{}, + "diff-fasta": &diffFasta{}, + "stats": &statscmd{}, + "merge": &merger{}, + "dump": &dump{}, + "dumpgob": &dumpGob{}, }) ) -func main() { +func init() { + if os.Getenv("GOGC") == "" { + debug.SetGCPercent(30) + } +} + +func Main() { + if !isatty.IsTerminal(os.Stderr.Fd()) { + logrus.StandardLogger().Formatter = &logrus.TextFormatter{DisableTimestamp: true} + } + if len(os.Args) >= 2 && !strings.HasSuffix(os.Args[1], "version") { + cmd.Version.RunCommand("lightning", nil, nil, os.Stderr, os.Stderr) + } os.Exit(handler.RunCommand(os.Args[0], os.Args[1:], os.Stdin, os.Stdout, os.Stderr)) } @@ -34,20 +73,24 @@ func (cmd *buildDockerImage) RunCommand(prog string, args []string, stdin io.Rea return 1 } 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 + err = ioutil.WriteFile(tmpdir+"/Dockerfile", []byte(`FROM debian:bullseye +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 ca-certificates && \ + 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 }