Skip to content

Commit c2cb123

Browse files
committed
add utils cmd
1 parent 1970d80 commit c2cb123

File tree

4 files changed

+86
-0
lines changed

4 files changed

+86
-0
lines changed

utils/join/cmd/join.go

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"os"
6+
"strings"
7+
)
8+
9+
func main() {
10+
if len(os.Args) < 3 {
11+
return
12+
}
13+
bar := os.Args[1]
14+
raw := os.Args[2:]
15+
for i := range raw {
16+
raw[i] = fmt.Sprintf("%s%s%s", bar, raw[i], bar)
17+
}
18+
fmt.Println(strings.Join(raw, ","))
19+
}

utils/rotate/cmd/rotate.go

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"os"
6+
7+
"github.com/leopoldxx/go-utils/utils/rotate"
8+
)
9+
10+
func main() {
11+
if len(os.Args) < 2 {
12+
return
13+
}
14+
15+
raw := os.Args[1:]
16+
for i := range raw {
17+
fmt.Println(rotate.Rotate(raw[i], "."))
18+
}
19+
}

utils/rotate/rotate.go

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package rotate
2+
3+
import "strings"
4+
5+
// Rotate string by a sep
6+
func Rotate(raw, sep string) string {
7+
items := strings.Split(raw, sep)
8+
9+
for i := 0; i < (len(items)+1)/2; i++ {
10+
items[i], items[len(items)-1-i] = items[len(items)-1-i], items[i]
11+
}
12+
return strings.Join(items, sep)
13+
}

utils/rotate/rotate_test.go

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package rotate
2+
3+
import "testing"
4+
5+
func TestRotate(t *testing.T) {
6+
7+
testCases := []struct {
8+
raw string
9+
sep string
10+
expect string
11+
}{
12+
{
13+
raw: "ab.cd.e.fg",
14+
sep: ".",
15+
expect: "fg.e.cd.ab",
16+
},
17+
{
18+
raw: "a.b.c.d.e.f.g",
19+
sep: "...",
20+
expect: "a.b.c.d.e.f.g",
21+
},
22+
{
23+
raw: "ab.cd.ef.g",
24+
sep: "",
25+
expect: "g.fe.dc.ba",
26+
},
27+
}
28+
29+
for _, tc := range testCases {
30+
if Rotate(tc.raw, tc.sep) != tc.expect {
31+
t.Fatalf("rotate failed: %v", tc)
32+
}
33+
}
34+
35+
}

0 commit comments

Comments
 (0)