mirror of
https://github.com/ncarlier/webhookd.git
synced 2025-04-19 20:50:11 +00:00
chore(): strcase usage generalization
This commit is contained in:
parent
6a011272fd
commit
efa525be49
|
@ -12,7 +12,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ncarlier/webhookd/pkg/logger"
|
"github.com/ncarlier/webhookd/pkg/logger"
|
||||||
"github.com/ncarlier/webhookd/pkg/tools"
|
"github.com/ncarlier/webhookd/pkg/strcase"
|
||||||
)
|
)
|
||||||
|
|
||||||
var workID uint64
|
var workID uint64
|
||||||
|
@ -58,7 +58,7 @@ func NewWorkRequest(name, script, payload, output string, args []string, timeout
|
||||||
MessageChan: make(chan []byte),
|
MessageChan: make(chan []byte),
|
||||||
Status: Idle,
|
Status: Idle,
|
||||||
}
|
}
|
||||||
w.LogFilename = path.Join(output, fmt.Sprintf("%s_%d_%s.txt", tools.ToSnakeCase(w.Name), w.ID, time.Now().Format("20060102_1504")))
|
w.LogFilename = path.Join(output, fmt.Sprintf("%s_%d_%s.txt", strcase.ToSnake(w.Name), w.ID, time.Now().Format("20060102_1504")))
|
||||||
return w
|
return w
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -77,7 +77,7 @@ func ToScreamingDelimited(s string, del uint8, screaming bool) string {
|
||||||
} else if v >= 'a' && v <= 'z' {
|
} else if v >= 'a' && v <= 'z' {
|
||||||
n += string(v) + string(del)
|
n += string(v) + string(del)
|
||||||
}
|
}
|
||||||
} else if v == ' ' || v == '_' || v == '-' {
|
} else if v == ' ' || v == '_' || v == '-' || v == '/' {
|
||||||
// replace spaces/underscores with delimiters
|
// replace spaces/underscores with delimiters
|
||||||
n += string(del)
|
n += string(del)
|
||||||
} else {
|
} else {
|
||||||
|
|
25
pkg/strcase/test/snake_test.go
Normal file
25
pkg/strcase/test/snake_test.go
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
package test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/ncarlier/webhookd/pkg/assert"
|
||||||
|
"github.com/ncarlier/webhookd/pkg/strcase"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestToSnakeCase(t *testing.T) {
|
||||||
|
testCases := []struct {
|
||||||
|
value string
|
||||||
|
expected string
|
||||||
|
}{
|
||||||
|
{"hello-world", "hello_world"},
|
||||||
|
{"helloWorld", "hello_world"},
|
||||||
|
{"HelloWorld", "hello_world"},
|
||||||
|
{"Hello/_World", "hello__world"},
|
||||||
|
{"Hello/world", "hello_world"},
|
||||||
|
}
|
||||||
|
for _, tc := range testCases {
|
||||||
|
value := strcase.ToSnake(tc.value)
|
||||||
|
assert.Equal(t, tc.expected, value, "")
|
||||||
|
}
|
||||||
|
}
|
|
@ -5,25 +5,10 @@ import (
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/url"
|
"net/url"
|
||||||
"strings"
|
"strings"
|
||||||
"unicode"
|
|
||||||
|
"github.com/ncarlier/webhookd/pkg/strcase"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ToSnakeCase convert string to snakecase.
|
|
||||||
func ToSnakeCase(in string) string {
|
|
||||||
runes := []rune(in)
|
|
||||||
length := len(runes)
|
|
||||||
|
|
||||||
var out []rune
|
|
||||||
for i := 0; i < length; i++ {
|
|
||||||
if i > 0 && unicode.IsUpper(runes[i]) && ((i+1 < length && unicode.IsLower(runes[i+1])) || unicode.IsLower(runes[i-1])) {
|
|
||||||
out = append(out, '_')
|
|
||||||
}
|
|
||||||
out = append(out, unicode.ToLower(runes[i]))
|
|
||||||
}
|
|
||||||
result := strings.Replace(string(out), "/", "_", -1)
|
|
||||||
return strings.Replace(result, "-", "", -1)
|
|
||||||
}
|
|
||||||
|
|
||||||
// QueryParamsToShellVars convert URL query parameters to shell vars.
|
// QueryParamsToShellVars convert URL query parameters to shell vars.
|
||||||
func QueryParamsToShellVars(q url.Values) []string {
|
func QueryParamsToShellVars(q url.Values) []string {
|
||||||
var params []string
|
var params []string
|
||||||
|
@ -33,7 +18,7 @@ func QueryParamsToShellVars(q url.Values) []string {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
buf.WriteString(ToSnakeCase(k))
|
buf.WriteString(strcase.ToSnake(k))
|
||||||
buf.WriteString("=")
|
buf.WriteString("=")
|
||||||
buf.WriteString(value)
|
buf.WriteString(value)
|
||||||
params = append(params, buf.String())
|
params = append(params, buf.String())
|
||||||
|
@ -50,7 +35,7 @@ func HTTPHeadersToShellVars(h http.Header) []string {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
buf.WriteString(ToSnakeCase(k))
|
buf.WriteString(strcase.ToSnake(k))
|
||||||
buf.WriteString("=")
|
buf.WriteString("=")
|
||||||
buf.WriteString(value)
|
buf.WriteString(value)
|
||||||
params = append(params, buf.String())
|
params = append(params, buf.String())
|
||||||
|
|
|
@ -9,23 +9,6 @@ import (
|
||||||
"github.com/ncarlier/webhookd/pkg/tools"
|
"github.com/ncarlier/webhookd/pkg/tools"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestToSnakeCase(t *testing.T) {
|
|
||||||
testCases := []struct {
|
|
||||||
value string
|
|
||||||
expected string
|
|
||||||
}{
|
|
||||||
{"hello-world", "helloworld"},
|
|
||||||
{"helloWorld", "hello_world"},
|
|
||||||
{"HelloWorld", "hello_world"},
|
|
||||||
{"Hello/World", "hello__world"},
|
|
||||||
{"Hello/world", "hello_world"},
|
|
||||||
}
|
|
||||||
for _, tc := range testCases {
|
|
||||||
value := tools.ToSnakeCase(tc.value)
|
|
||||||
assert.Equal(t, tc.expected, value, "")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestQueryParamsToShellVars(t *testing.T) {
|
func TestQueryParamsToShellVars(t *testing.T) {
|
||||||
tc := url.Values{
|
tc := url.Values{
|
||||||
"string": []string{"foo"},
|
"string": []string{"foo"},
|
||||||
|
|
|
@ -6,12 +6,12 @@ import (
|
||||||
"path"
|
"path"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
"github.com/ncarlier/webhookd/pkg/tools"
|
"github.com/ncarlier/webhookd/pkg/strcase"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RetrieveLogFile retrieve work log with its name and id
|
// RetrieveLogFile retrieve work log with its name and id
|
||||||
func RetrieveLogFile(id, name, base string) (*os.File, error) {
|
func RetrieveLogFile(id, name, base string) (*os.File, error) {
|
||||||
logPattern := path.Join(base, fmt.Sprintf("%s_%s_*.txt", tools.ToSnakeCase(name), id))
|
logPattern := path.Join(base, fmt.Sprintf("%s_%s_*.txt", strcase.ToSnake(name), id))
|
||||||
files, err := filepath.Glob(logPattern)
|
files, err := filepath.Glob(logPattern)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
Loading…
Reference in New Issue
Block a user