Run powershell and bash commands easly in go.
Examples
Run one command on both shell and powershell
import "github.com/abdfnx/gosh" // run a command gosh.Run("git status") // run a command with output err, out, errout := gosh.RunOut("whoami") if err != nil { log.Printf("error: %v\n", err) fmt.Print(errout) } fmt.Print(out)
How gosh.Run("COMMAND")
works ?
// `Run` executes the same command for shell and powershell func Run(cmd string) { err, out, errout := ShellOutput("") if runtime.GOOS == "windows" { err, out, errout = PowershellOutput(cmd) } else { err, out, errout = ShellOutput(cmd) } if err != nil { log.Printf("error: %v\n", err) fmt.Print(errout) } fmt.Print(out) }
Powershell
import "github.com/abdfnx/gosh" // run a command gosh.PowershellCommand(`Write-Host "hello from powershell"`) // run a script gosh.PowershellCommand(` $git_username = git config user.name Write-Host $git_username `) // run a command with output err, out, errout := gosh.PowerShelloutput(`[System.Environment]::SetEnvironmentVariable("Path", $Env:Path + ";$APP_PATH\bin", [System.EnvironmentVariableTarget]::User)`) if err != nil { log.Printf("error: %v\n", err) fmt.Print(errout) } fmt.Print(out)
Bash/Shell
import "github.com/abdfnx/gosh" // run a command gosh.ShellCommand(`echo "shell or bash?"`) // run a script gosh.ShellCommand(` mood="๐จโ๐ป" if [ $mood != "๐ช" ]; then echo "still coding" fi `) // run a command with output err, out, errout := gosh.Shelloutput(`curl --silent "https://api.github.com/repos/abdfnx/resto/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/'`) if err != nil { log.Printf("error: %v\n", err) fmt.Print(errout) } fmt.Print(out)
thank you for your time and don't forgot to star the repo if you like it
Top comments (0)