Upgraded do to 1.23 to get errors.Join function
This commit is contained in:
parent
6a88132acf
commit
f1cbf9c85d
4 changed files with 13 additions and 37 deletions
26
error.go
26
error.go
|
@ -4,32 +4,6 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
)
|
)
|
||||||
|
|
||||||
func filterNilErrors(errs []error) (notNilErrs []error) {
|
|
||||||
for _, err := range errs {
|
|
||||||
if err != nil {
|
|
||||||
notNilErrs = append(notNilErrs, err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return notNilErrs
|
|
||||||
}
|
|
||||||
|
|
||||||
func Join(errs ...error) (result error) {
|
|
||||||
errs = filterNilErrors(errs)
|
|
||||||
if len(errs) == 0 {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
for index, err := range errs {
|
|
||||||
if index == 0 {
|
|
||||||
result = err
|
|
||||||
} else {
|
|
||||||
result = fmt.Errorf("%w: %v", result, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
func ERR_NOT_TTY() error {
|
func ERR_NOT_TTY() error {
|
||||||
return fmt.Errorf("File is not a tty")
|
return fmt.Errorf("File is not a tty")
|
||||||
}
|
}
|
||||||
|
|
6
go.mod
6
go.mod
|
@ -1,8 +1,8 @@
|
||||||
module code.foilhatguy.casa/pub/stty
|
module code.foilhatguy.casa/pub/stty
|
||||||
|
|
||||||
go 1.19
|
go 1.23
|
||||||
|
|
||||||
require (
|
require (
|
||||||
golang.org/x/sys v0.15.0 // indirect
|
golang.org/x/sys v0.15.0
|
||||||
golang.org/x/term v0.15.0 // indirect
|
golang.org/x/term v0.15.0
|
||||||
)
|
)
|
||||||
|
|
9
real.go
9
real.go
|
@ -1,8 +1,9 @@
|
||||||
package stty
|
package stty
|
||||||
|
|
||||||
import(
|
import (
|
||||||
"os/exec"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os/exec"
|
||||||
)
|
)
|
||||||
|
|
||||||
type real struct {
|
type real struct {
|
||||||
|
@ -12,7 +13,7 @@ func (r *real) SetBaudRate(portPath string, baudrate int) error {
|
||||||
setBaudRateCMD := exec.Command("stty", "-F", portPath, fmt.Sprint(baudrate))
|
setBaudRateCMD := exec.Command("stty", "-F", portPath, fmt.Sprint(baudrate))
|
||||||
_, err := setBaudRateCMD.Output()
|
_, err := setBaudRateCMD.Output()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return Join(ERR_SET_BAUDRATE_FAILED(), err)
|
return errors.Join(ERR_SET_BAUDRATE_FAILED(), err)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -39,7 +40,7 @@ func (r *real) TestBaudRate(portPath string, baudrate int) error {
|
||||||
|
|
||||||
newBaudRate, err := r.CheckBaudRate(portPath)
|
newBaudRate, err := r.CheckBaudRate(portPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return Join(ERR_CHECK_BAUDRATE_FAILED(), err)
|
return errors.Join(ERR_CHECK_BAUDRATE_FAILED(), err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if newBaudRate == baudrate {
|
if newBaudRate == baudrate {
|
||||||
|
|
7
stty.go
7
stty.go
|
@ -1,6 +1,7 @@
|
||||||
package stty
|
package stty
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
@ -25,7 +26,7 @@ func init() {
|
||||||
checkSttyCMD := exec.Command("stty", "--version")
|
checkSttyCMD := exec.Command("stty", "--version")
|
||||||
sttyOutput, err := checkSttyCMD.Output()
|
sttyOutput, err := checkSttyCMD.Output()
|
||||||
if err != nil || len(sttyOutput) == 0 {
|
if err != nil || len(sttyOutput) == 0 {
|
||||||
cmd = &dummy{Join(ERR_STTY_MISSING(),err)}
|
cmd = &dummy{errors.Join(ERR_STTY_MISSING(),err)}
|
||||||
}
|
}
|
||||||
cmd = &real{}
|
cmd = &real{}
|
||||||
}
|
}
|
||||||
|
@ -33,13 +34,13 @@ func init() {
|
||||||
func ValidateTtyFile(filepath string) error {
|
func ValidateTtyFile(filepath string) error {
|
||||||
file, err := os.Open(filepath)
|
file, err := os.Open(filepath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return Join(ERR_CANNOT_OPEN_FILE(), fmt.Errorf(err.Error()))
|
return errors.Join(ERR_CANNOT_OPEN_FILE(), fmt.Errorf(err.Error()))
|
||||||
}
|
}
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
|
|
||||||
err = unix.Access(filepath, unix.W_OK)
|
err = unix.Access(filepath, unix.W_OK)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return Join(ERR_NO_WRITE_ACCESS(), err)
|
return errors.Join(ERR_NO_WRITE_ACCESS(), err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if term.IsTerminal(int(file.Fd())) {
|
if term.IsTerminal(int(file.Fd())) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue