(args []string)
| 753 | } |
| 754 | |
| 755 | func parseWaitArgs(args []string) (scheduler.ToolInput, error) { |
| 756 | in := scheduler.ToolInput{Tags: map[string]string{}} |
| 757 | for i := 0; i < len(args); i++ { |
| 758 | switch args[i] { |
| 759 | case "--until": |
| 760 | in.Until, i = takeString(args, i) |
| 761 | case "--then": |
| 762 | in.Do, i = takeString(args, i) |
| 763 | case "--every": |
| 764 | in.PollInterval, i = takeString(args, i) |
| 765 | case "--timeout": |
| 766 | in.WaitTimeout, i = takeString(args, i) |
| 767 | case "--max-polls": |
| 768 | val, ni := takeString(args, i) |
| 769 | if n, err := strconv.Atoi(val); err == nil { |
| 770 | in.MaxPolls = n |
| 771 | } |
| 772 | i = ni |
| 773 | case "--async": |
| 774 | in.Async = true |
| 775 | case "--on-timeout": |
| 776 | in.OnTimeout, i = takeString(args, i) |
| 777 | case "--name": |
| 778 | in.Name, i = takeString(args, i) |
| 779 | default: |
| 780 | if strings.HasPrefix(args[i], "--") { |
| 781 | return in, fmt.Errorf("wait: unknown flag %s", args[i]) |
| 782 | } |
| 783 | return in, fmt.Errorf("wait: unexpected positional %q (did you forget to quote a multi-word value?)", args[i]) |
| 784 | } |
| 785 | } |
| 786 | if in.Until == "" { |
| 787 | return in, fmt.Errorf("wait: --until is required") |
| 788 | } |
| 789 | if in.When == "" { |
| 790 | in.When = "when-ready" |
| 791 | } |
| 792 | if in.Do == "" { |
| 793 | in.Do = "noop" |
| 794 | } |
| 795 | if in.Name == "" { |
| 796 | host, _ := os.Hostname() |
| 797 | in.Name = fmt.Sprintf("wait-%s-%d", host, time.Now().UnixNano()%100000) |
| 798 | } |
| 799 | return in, nil |
| 800 | } |
| 801 | |
| 802 | func takeString(args []string, i int) (string, int) { |
| 803 | if i+1 >= len(args) { |
no test coverage detected