summaryrefslogtreecommitdiff
path: root/chomp.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-11-08 06:43:04 -0600
committerJeff Carr <[email protected]>2024-11-08 06:43:04 -0600
commitd887da32f20feee8bfbebf7b2db63f1a42fd7176 (patch)
tree8a13e9890c6c9c6e149bdf4cb5ebaf458fcaa167 /chomp.go
parentae5cadf5455d5f65fdab0b690b8d403090750fc3 (diff)
use go-cmd/cmd and purge old codev0.22.5
Diffstat (limited to 'chomp.go')
-rw-r--r--chomp.go98
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
-}