command

package
v1.7.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 1, 2024 License: MIT Imports: 6 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CombinedOut added in v1.7.0

func CombinedOut(cmd BaseCmd) (string, error)

Execute CombinedOut on all library command types/interfaces.

func Out added in v1.7.0

func Out(cmd BaseCmd) (string, error)

Execute Out on all library command types/interfaces.

func Run added in v1.7.0

func Run(cmd BaseCmd) error

Execute Run on all library command types/interfaces.

func Start added in v1.7.0

func Start(cmd BaseCmd) error

Execute Start on all library command types/interfaces.

Types

type BaseCmd added in v1.7.0

type BaseCmd interface {
	GetExec() *exec.Cmd

	SetInput(string)
	SetInputf(string, ...any)

	Std(bool, bool, bool)
	Stdout(bool)
	Stdin(bool)
	Stderr(bool)

	Run() error
	Out() (string, error)
	Start() error
	CombinedOut() (string, error)

	SetAndStartf(string, ...any) error
	SetAndCombinedOutf(string, ...any) (string, error)
	SetAndOutf(string, ...any) (string, error)
	SetAndRunf(string, ...any) error

	SetAndStart(string) error
	SetAndCombinedOut(string) (string, error)
	SetAndOut(string) (string, error)
	SetAndRun(string) error
}

The universal base interface for the others, can be converted unidirectionally to all others.

func NewBaseCmd added in v1.7.0

func NewBaseCmd(command string) BaseCmd

Creates a new BaseCmd interface, which is completely universal and cross-platform.

func NewBaseCmdf added in v1.7.0

func NewBaseCmdf(command string, args ...any) BaseCmd

NewBaseCmd but with a fmt.Sprintf in it.

type Cmd

type Cmd struct {
	internal.Shared
	Powershell struct {
		PSFlags string
		Enabled bool
	}
	Cmd struct {
		CmdFlags      string
		RawExec       bool
		HideCmdWindow bool
	}
}

func NewCmd added in v1.7.0

func NewCmd(command string) *Cmd

Create a cmd structure convertible to the default interface for your platform. Ex: Windows -> WindowsCmd. Unix -> UnixCmd.

func NewCmdf added in v1.7.0

func NewCmdf(command string, args ...any) *Cmd

It's the same as NewCmd(fmt.Sprintf(command,args...)).

func (*Cmd) CmdFlags added in v1.7.1

func (sh *Cmd) CmdFlags() string

func (Cmd) CombinedOut added in v1.3.0

func (sh Cmd) CombinedOut() (string, error)

Execute the command with all parameters already set, something like "exec.Command([formatted command]).CombinedOutput()" and return its error and string output, as well as executing with output to stdin,stdout and stderr.

func (Cmd) GetExec added in v1.3.1

func (sh Cmd) GetExec() *exec.Cmd

Returns the exec.Cmd structure with all parameters already configured.

func (*Cmd) HideCmd added in v1.7.1

func (sh *Cmd) HideCmd() bool

func (Cmd) Out added in v1.3.0

func (sh Cmd) Out() (string, error)

Execute the command with all the parameters already set, something like "exec.Command([formatted command]).Output()" and return its string and error output.

func (*Cmd) PSFlags added in v1.7.1

func (sh *Cmd) PSFlags() string

func (*Cmd) RawExec added in v1.7.1

func (sh *Cmd) RawExec() bool

func (Cmd) Run added in v1.3.0

func (sh Cmd) Run() error

Execute the command with all the parameters already set, something like "exec.Command([formatted command]).Run()" and return its error output.

func (*Cmd) RunWithPS added in v1.3.0

func (sh *Cmd) RunWithPS(set bool)

Run the command using "powershell.exe [parameters] /c command" instead of "cmd.exe [parameters] /c command".

func (Cmd) SetAndCombinedOut added in v1.3.0

func (sh Cmd) SetAndCombinedOut(command string) (string, error)

It is the same as cmd := command.Cmd("<command>"); cmd.CombinedOut() but in a single argument, what it does is to put an internal input (the one provided) and execute it directly without affecting the main structure.

func (Cmd) SetAndCombinedOutf added in v1.6.0

func (sh Cmd) SetAndCombinedOutf(command string, args ...any) (string, error)

It is the same as a SetAndCombinedOut(fmt.Sprintf(command,args)) but shortened for better handling.

func (Cmd) SetAndOut added in v1.3.0

func (sh Cmd) SetAndOut(command string) (string, error)

It is the same as cmd := command.Cmd("<command>"); cmd.Out() but in a single argument, what it does is to put an internal input (the one provided) and execute it directly without affecting the main structure.

func (Cmd) SetAndOutf added in v1.6.0

func (sh Cmd) SetAndOutf(command string, args ...any) (string, error)

Is the same as a SetAndOut(fmt.Sprintf(command,args)) but shortened for better handling.

func (Cmd) SetAndRun added in v1.3.0

func (sh Cmd) SetAndRun(command string) error

It is the same as cmd := command.Cmd("<command>"); cmd.Run() but in a single argument, what it does is to put an internal input (the one provided) and execute it directly without affecting the main structure.

func (Cmd) SetAndRunf added in v1.6.0

func (sh Cmd) SetAndRunf(command string, args ...any) error

Is the same as a SetAndRun(fmt.Sprintf(command,args)) but shortened for better handling.

func (Cmd) SetAndStart added in v1.3.0

func (sh Cmd) SetAndStart(command string) error

It is the same as cmd := command.Cmd("<command>"); cmd.Start() but in a single argument, what it does is to put an internal input (the one provided) and execute it directly without affecting the main structure.

func (Cmd) SetAndStartf added in v1.6.0

func (sh Cmd) SetAndStartf(command string, args ...any) error

It is the same as a SetAndStart(fmt.Sprintf(command,args)) but shortened for better handling.

func (*Cmd) SetCmdFlags added in v1.7.1

func (sh *Cmd) SetCmdFlags(flags string)

It sets the customized cmd flags, its syntax when executed would be something like this "cmd.exe [flags] /c command".

func (*Cmd) SetCmdFlagsf added in v1.7.1

func (sh *Cmd) SetCmdFlagsf(flags string, args ...any)

func (*Cmd) SetHideCmd added in v1.7.1

func (sh *Cmd) SetHideCmd(set bool)

Hides the cmd/powershell window that appears when executing a command in go.

func (*Cmd) SetPSFlags added in v1.7.1

func (sh *Cmd) SetPSFlags(flags string)

It sets the customized powershell flags, its syntax when executed would be something like this "powershell.exe [flags] /c command".

func (*Cmd) SetPSFlagsf added in v1.7.1

func (sh *Cmd) SetPSFlagsf(flags string, args ...any)

func (*Cmd) SetRawExec added in v1.7.1

func (sh *Cmd) SetRawExec(set bool)

Execute the command directly, it is useful if you want to execute a binary, this mode does not have access to the path so you will have to put the full path of the binary or use something relative to execute it.

func (Cmd) Start added in v1.3.0

func (sh Cmd) Start() error

Execute the command with all the parameters already set, something like "exec.Command([formatted command]).Start()" and return its error output.

func (*Cmd) UsingCmd added in v1.7.1

func (sh *Cmd) UsingCmd() bool

func (*Cmd) UsingPS added in v1.7.1

func (sh *Cmd) UsingPS() bool

type UnixCmd added in v1.7.0

type UnixCmd interface {
	BaseCmd

	RunWithShell(bool)
	UseBashShell(bool)
	CustomShell(string, string)
	GetChroot() (string, bool)
	SetChroot(string)
	SetChrootf(string, ...any)
	EnableChroot()
	DisableChroot()
}

An exclusive interface for unix, which has the specific functions for that OS.

type UnixSudoCmd added in v1.7.0

type UnixSudoCmd interface {
	UnixCmd

	SetPasswd(string)
}

Unix interface with extra functions to cover sudo execution.

type WindowsCmd added in v1.7.0

type WindowsCmd interface {
	BaseCmd

	RunWithPS(bool)

	SetRawExec(bool)
	RawExec() bool
	SetHideCmd(bool)
	HideCmd() bool

	UsingPS() bool
	UsingCmd() bool

	SetPSFlags(string)
	SetPSFlagsf(string, ...any)
	PSFlags() string

	SetCmdFlags(string)
	SetCmdFlagsf(string, ...any)
	CmdFlags() string
}

The exclusive command interface for windows, you can convert BaseCmd -> WindowsCmd with specific functions for that OS.

func NewWindowsCmd added in v1.7.1

func NewWindowsCmd(command string) WindowsCmd

func NewWindowsCmdf added in v1.7.1

func NewWindowsCmdf(command string, args ...any) WindowsCmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL