(req *UpdateHelpPageRequest, warner *util.Warner)
| 612 | } |
| 613 | |
| 614 | func (s *serverImpl) handleUpdateHelpPageRequest(req *UpdateHelpPageRequest, warner *util.Warner) (rsp UpdateHelpPageResponse, err error) { |
| 615 | cmd := req.Command |
| 616 | _, err = os.Stat(cmd.Dir) |
| 617 | if err != nil { |
| 618 | if errors.Is(err, os.ErrNotExist) { |
| 619 | runDir := s.configuration.GetRunDir() |
| 620 | warner.Warnf( |
| 621 | "updating %v ; will use %q instead non existing %q", |
| 622 | shells.Quote(cmd.Args), |
| 623 | runDir, |
| 624 | cmd.Dir, |
| 625 | ) |
| 626 | cmd.Dir = s.configuration.GetRunDir() |
| 627 | } else { |
| 628 | return |
| 629 | } |
| 630 | } |
| 631 | |
| 632 | ctx, _ := context.WithTimeout(context.Background(), time.Second*1) |
| 633 | helpPage, err := s.runHelpCommand(cmd, ctx) |
| 634 | if err != nil { |
| 635 | warner.Warnf("error running %v: %v", shells.Quote(cmd.Args), err) |
| 636 | _, err = s.storage.RemoveHelpPage(req.Id) |
| 637 | } else { |
| 638 | _, err = s.storage.AddHelpPage(helpPage, datastore.PolicyUnknown) |
| 639 | } |
| 640 | |
| 641 | return |
| 642 | } |
| 643 | |
| 644 | func (s *serverImpl) getShellInfo(pid int) (info *shellInfo, err error) { |
| 645 | info, ok := s.shellInfoMap[pid] |
no test coverage detected