X-Git-Url: https://git.arvados.org/lightning.git/blobdiff_plain/7a447e0c90a4da2e2851abb078df2b233728f6b1..HEAD:/manhattan.go diff --git a/manhattan.go b/manhattan.go deleted file mode 100644 index 4ae44796be..0000000000 --- a/manhattan.go +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright (C) The Lightning Authors. All rights reserved. -// -// SPDX-License-Identifier: AGPL-3.0 - -package lightning - -import ( - _ "embed" - "flag" - "fmt" - "io" - "os/exec" - "strings" - - "git.arvados.org/arvados.git/sdk/go/arvados" -) - -type manhattanPlot struct{} - -//go:embed manhattan.py -var manhattanPy string - -func (cmd *manhattanPlot) RunCommand(prog string, args []string, stdin io.Reader, stdout, stderr io.Writer) int { - var err error - defer func() { - if err != nil { - fmt.Fprintf(stderr, "%s\n", err) - } - }() - flags := flag.NewFlagSet("", flag.ContinueOnError) - flags.SetOutput(stderr) - projectUUID := flags.String("project", "", "project `UUID` for output data") - inputDirectory := flags.String("i", "-", "input `directory` (output of slice-numpy -single-onehot)") - outputFilename := flags.String("o", "", "output `filename` (e.g., './plot.png')") - priority := flags.Int("priority", 500, "container request priority") - runlocal := flags.Bool("local", false, "run on local host (default: run in an arvados container)") - err = flags.Parse(args) - if err == flag.ErrHelp { - err = nil - return 0 - } else if err != nil { - return 2 - } else if flags.NArg() > 0 { - err = fmt.Errorf("errant command line arguments after parsed flags: %v", flags.Args()) - return 2 - } - - runner := arvadosContainerRunner{ - Name: "lightning manhattan", - Client: arvados.NewClientFromEnv(), - ProjectUUID: *projectUUID, - RAM: 4 << 30, - VCPUs: 1, - Priority: *priority, - Mounts: map[string]map[string]interface{}{ - "/manhattan.py": map[string]interface{}{ - "kind": "text", - "content": manhattanPy, - }, - }, - } - if !*runlocal { - err = runner.TranslatePaths(inputDirectory) - if err != nil { - return 1 - } - *outputFilename = "/mnt/output/plot.png" - } - args = []string{ - *inputDirectory, - *outputFilename, - } - if *runlocal { - if *outputFilename == "" { - fmt.Fprintln(stderr, "error: must specify -o filename.png in local mode (or try -help)") - return 1 - } - cmd := exec.Command("python3", append([]string{"-"}, args...)...) - cmd.Stdin = strings.NewReader(manhattanPy) - cmd.Stdout = stdout - cmd.Stderr = stderr - err = cmd.Run() - if err != nil { - return 1 - } - return 0 - } - runner.Prog = "python3" - runner.Args = append([]string{"/manhattan.py"}, args...) - var output string - output, err = runner.Run() - if err != nil { - return 1 - } - fmt.Fprintln(stdout, output+"/plot.png") - return 0 -}