Command creates an arbitrary Nix command that uses the Path, ExtraArgs, Logger and other defaults from n.
(args ...any)
| 51 | // Command creates an arbitrary Nix command that uses the Path, ExtraArgs, |
| 52 | // Logger and other defaults from n. |
| 53 | func (n *Nix) Command(args ...any) *Cmd { |
| 54 | cmd := &Cmd{ |
| 55 | Args: make(Args, 1, 1+len(n.ExtraArgs)+len(args)), |
| 56 | Logger: n.logger(), |
| 57 | } |
| 58 | cmd.Path, cmd.err = n.resolvePath() |
| 59 | |
| 60 | if n.Path == "" { |
| 61 | cmd.Args[0] = "nix" // resolved from $PATH |
| 62 | } else { |
| 63 | cmd.Args[0] = n.Path // explicitly set |
| 64 | } |
| 65 | cmd.Args = append(cmd.Args, n.ExtraArgs...) |
| 66 | cmd.Args = append(cmd.Args, args...) |
| 67 | return cmd |
| 68 | } |
| 69 | |
| 70 | func (c *Cmd) CombinedOutput(ctx context.Context) ([]byte, error) { |
| 71 | defer c.logRunFunc(ctx)() |