diff options
| author | Jeff Carr <[email protected]> | 2024-11-08 06:43:04 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-11-08 06:43:04 -0600 |
| commit | d887da32f20feee8bfbebf7b2db63f1a42fd7176 (patch) | |
| tree | 8a13e9890c6c9c6e149bdf4cb5ebaf458fcaa167 /chomp.go | |
| parent | ae5cadf5455d5f65fdab0b690b8d403090750fc3 (diff) | |
use go-cmd/cmd and purge old codev0.22.5
Diffstat (limited to 'chomp.go')
| -rw-r--r-- | chomp.go | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/chomp.go b/chomp.go deleted file mode 100644 index 19acaf7..0000000 --- a/chomp.go +++ /dev/null @@ -1,98 +0,0 @@ -package shell - -/* - perl 'chomp' - - send it anything, always get back a string -*/ - -import ( - "bytes" - "fmt" - "reflect" - "strings" - - "go.wit.com/log" -) - -// import "github.com/davecgh/go-spew/spew" - -func chompBytesBuffer(buf *bytes.Buffer) string { - var bytesSplice []byte - bytesSplice = buf.Bytes() - - return Chomp(string(bytesSplice)) -} - -// TODO: obviously this is stupidly wrong -// TODO: fix this to trim fucking everything -// really world? 8 fucking years of this language -// and I'm fucking writing this? jesus. how the -// hell is everyone else doing this? Why isn't -// this already in the strings package? -func perlChomp(s string) string { - // lots of stuff in go moves around the whole block of whatever it is so lots of things are padded with NULL values - s = strings.Trim(s, "\x00") // removes NULL (needed!) - - // TODO: christ. make some fucking regex that takes out every NULL, \t, ' ", \n, and \r - s = strings.Trim(s, "\n") - s = strings.Trim(s, "\n") - s = strings.TrimSuffix(s, "\r") - s = strings.TrimSuffix(s, "\n") - - s = strings.TrimSpace(s) // this is like 'chomp' in perl - s = strings.TrimSuffix(s, "\n") // this is like 'chomp' in perl - return s -} - -// TODO: fix this to chomp \n \r NULL \t and ' ' -func Chomp(a interface{}) string { - // switch reflect.TypeOf(a) { - switch t := a.(type) { - case string: - var s string - s = a.(string) - return perlChomp(s) - case []uint8: - // log.Printf("shell.Chomp() FOUND []uint8") - var tmp []uint8 - tmp = a.([]uint8) - - s := string(tmp) - return perlChomp(s) - case uint64: - // log.Printf("shell.Chomp() FOUND []uint64") - s := fmt.Sprintf("%d", a.(uint64)) - return perlChomp(s) - case int64: - // log.Printf("shell.Chomp() FOUND []int64") - s := fmt.Sprintf("%d", a.(int64)) - return perlChomp(s) - case *bytes.Buffer: - // log.Printf("shell.Chomp() FOUND *bytes.Buffer") - var tmp *bytes.Buffer - tmp = a.(*bytes.Buffer) - if tmp == nil { - return "" - } - - var bytesSplice []byte - bytesSplice = tmp.Bytes() - return Chomp(string(bytesSplice)) - default: - tmp := fmt.Sprint("shell.Chomp() NO HANDLER FOR TYPE: %T", a) - handleError(fmt.Errorf(tmp), -1) - log.Warn("shell.Chomp() NEED TO MAKE CONVERTER FOR type =", reflect.TypeOf(t)) - } - tmp := "shell.Chomp() THIS SHOULD NEVER HAPPEN" - handleError(fmt.Errorf(tmp), -1) - return "" -} - -// this is stuff from a long time ago that there must be a replacement for -func RemoveFirstElement(slice []string) (string, []string) { - if len(slice) == 0 { - return "", slice // Return the original slice if it's empty - } - return slice[0], slice[1:] // Return the slice without the first element -} |
