10 "git.arvados.org/arvados.git/lib/cmd"
11 "github.com/mattn/go-isatty"
12 "github.com/sirupsen/logrus"
16 handler = cmd.Multi(map[string]cmd.Handler{
17 "version": cmd.Version,
18 "-version": cmd.Version,
19 "--version": cmd.Version,
21 "ref2genome": &ref2genome{},
22 "vcf2fasta": &vcf2fasta{},
23 "import": &importer{},
24 "export": &exporter{},
25 "export-numpy": &exportNumpy{},
26 "filter": &filterer{},
27 "build-docker-image": &buildDockerImage{},
29 "pca-py": &pythonPCA{},
30 "plot": &pythonPlot{},
31 "diff-fasta": &diffFasta{},
38 if !isatty.IsTerminal(os.Stderr.Fd()) {
39 logrus.StandardLogger().Formatter = &logrus.TextFormatter{DisableTimestamp: true}
41 os.Exit(handler.RunCommand(os.Args[0], os.Args[1:], os.Stdin, os.Stdout, os.Stderr))
44 type buildDockerImage struct{}
46 func (cmd *buildDockerImage) RunCommand(prog string, args []string, stdin io.Reader, stdout, stderr io.Writer) int {
47 tmpdir, err := ioutil.TempDir("", "")
49 fmt.Fprint(stderr, err)
52 defer os.RemoveAll(tmpdir)
53 err = ioutil.WriteFile(tmpdir+"/Dockerfile", []byte(`FROM debian:10
54 RUN DEBIAN_FRONTEND=noninteractive \
56 apt-get dist-upgrade -y && \
57 apt-get install -y --no-install-recommends bcftools bedtools samtools python2 python3-sklearn python3-matplotlib && \
61 fmt.Fprint(stderr, err)
64 docker := exec.Command("docker", "build", "--tag=lightning-runtime", tmpdir)
65 docker.Stdout = stdout
66 docker.Stderr = stderr
71 fmt.Fprintf(stderr, "built and tagged new docker image, lightning-runtime\n")