diff options
Diffstat (limited to 'cmd/planterette/proc.go')
| -rw-r--r-- | cmd/planterette/proc.go | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/cmd/planterette/proc.go b/cmd/planterette/proc.go deleted file mode 100644 index d374e13d..00000000 --- a/cmd/planterette/proc.go +++ /dev/null @@ -1,60 +0,0 @@ -package main - -import ( - "context" - "encoding/json" - "errors" - "io" - "log" - "os" - "os/exec" - - "hakurei.app/hst" - "hakurei.app/internal" - "hakurei.app/internal/hlog" -) - -var hakureiPath = internal.MustHakureiPath() - -func mustRunApp(ctx context.Context, config *hst.Config, beforeFail func()) { - var ( - cmd *exec.Cmd - st io.WriteCloser - ) - - if r, w, err := os.Pipe(); err != nil { - beforeFail() - log.Fatalf("cannot pipe: %v", err) - } else { - if hlog.Load() { - cmd = exec.CommandContext(ctx, hakureiPath, "-v", "app", "3") - } else { - cmd = exec.CommandContext(ctx, hakureiPath, "app", "3") - } - cmd.Stdin, cmd.Stdout, cmd.Stderr = os.Stdin, os.Stdout, os.Stderr - cmd.ExtraFiles = []*os.File{r} - st = w - } - - go func() { - if err := json.NewEncoder(st).Encode(config); err != nil { - beforeFail() - log.Fatalf("cannot send configuration: %v", err) - } - }() - - if err := cmd.Start(); err != nil { - beforeFail() - log.Fatalf("cannot start hakurei: %v", err) - } - if err := cmd.Wait(); err != nil { - var exitError *exec.ExitError - if errors.As(err, &exitError) { - beforeFail() - internal.Exit(exitError.ExitCode()) - } else { - beforeFail() - log.Fatalf("cannot wait: %v", err) - } - } -} |
