mirror of
https://github.com/rwinkhart/go-boilerplate.git
synced 2026-08-28 04:46:41 -04:00
33 lines
731 B
Go
33 lines
731 B
Go
package back
|
|
|
|
import (
|
|
"bufio"
|
|
"io"
|
|
"os"
|
|
"os/exec"
|
|
)
|
|
|
|
// WriteToStdin is a utility function that writes a string to a command's stdin.
|
|
func WriteToStdin(cmd *exec.Cmd, input string) {
|
|
stdin, err := cmd.StdinPipe()
|
|
if err != nil {
|
|
PrintError("Failed to access stdin for system command: "+err.Error(), ErrorOther, true)
|
|
}
|
|
|
|
go func() {
|
|
defer func(stdin io.WriteCloser) {
|
|
_ = stdin.Close() // error ignored; if stdin could be accessed, it can probably be closed
|
|
}(stdin)
|
|
_, _ = io.WriteString(stdin, input)
|
|
}()
|
|
}
|
|
|
|
// ReadFromStdin is a utility function that reads a string from stdin.
|
|
func ReadFromStdin() string {
|
|
scanner := bufio.NewScanner(os.Stdin)
|
|
if scanner.Scan() {
|
|
return scanner.Text()
|
|
}
|
|
return ""
|
|
}
|