added 'command' shell command
This commit is contained in:
parent
2cc3517f37
commit
ef7c4f26f7
2 changed files with 58 additions and 0 deletions
28
cmd/command.go
Normal file
28
cmd/command.go
Normal file
|
@ -0,0 +1,28 @@
|
|||
package cmd
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"os/exec"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func Command(cmd string) (string, error) {
|
||||
|
||||
command := exec.Command("command", "-v", cmd)
|
||||
|
||||
outputBytes, err := command.Output()
|
||||
if err != nil {
|
||||
var exitErr *exec.ExitError
|
||||
if errors.As(err, &exitErr) {
|
||||
if exitErr.ExitCode() == 1 {
|
||||
return "", ErrNotFound
|
||||
} else {
|
||||
return "", fmt.Errorf("command error: %w", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return strings.Trim(string(outputBytes), "\n"), nil
|
||||
|
||||
}
|
30
tes.go
Normal file
30
tes.go
Normal file
|
@ -0,0 +1,30 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"git.shadowhosting.xyz/Eggactyl/shell/linux"
|
||||
"log"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
cmd, err := linux.NewCommand(linux.CommandOptions{
|
||||
Command: "./package",
|
||||
//Sources: []string{"./nvm.sh"},
|
||||
Args: []string{"install"},
|
||||
CustomErrors: map[int8]error{
|
||||
1: errors.New("failed to download package"),
|
||||
},
|
||||
//Cwd: "/home/<user>/<dir>",
|
||||
//Shell: "/bin/bash",
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
if err := cmd.Run(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue