Use goreleaser to build and release (#244)

Instead of using gox on one side and an action to release, we can merge
them together with goreleaser which will build for extra targets (arm,
mips if needed in the future) and it also takes care of creating
checksums, a source archive, and a changelog and creating a release with
all the artifacts.

All binaries should respect the old naming convention, so any scripts
out there should still work.

Signed-off-by: Itxaka <igarcia@suse.com>
This commit is contained in:
Itxaka
2021-08-11 08:30:55 +02:00
committed by GitHub
parent 0a4fe57f33
commit 4adc0dc9b9
1133 changed files with 81678 additions and 85598 deletions

View File

@@ -3,15 +3,11 @@
package xstrings
import (
"bytes"
)
const bufferMaxInitGrowSize = 2048
// Lazy initialize a buffer.
func allocBuffer(orig, cur string) *bytes.Buffer {
output := &bytes.Buffer{}
func allocBuffer(orig, cur string) *stringBuilder {
output := &stringBuilder{}
maxSize := len(orig) * 4
// Avoid to reserve too much memory at once.

View File

@@ -4,7 +4,6 @@
package xstrings
import (
"bytes"
"math/rand"
"unicode"
"unicode/utf8"
@@ -23,7 +22,7 @@ func ToCamelCase(str string) string {
return ""
}
buf := &bytes.Buffer{}
buf := &stringBuilder{}
var r0, r1 rune
var size int
@@ -112,7 +111,7 @@ func camelCaseToLowerCase(str string, connector rune) string {
return ""
}
buf := &bytes.Buffer{}
buf := &stringBuilder{}
wt, word, remaining := nextWord(str)
for len(remaining) > 0 {
@@ -374,7 +373,7 @@ func nextValidRune(str string, prev rune) (r rune, size int) {
return
}
func toLower(buf *bytes.Buffer, wt wordType, str string, connector rune) {
func toLower(buf *stringBuilder, wt wordType, str string, connector rune) {
buf.Grow(buf.Len() + len(str))
if wt != upperCaseWord && wt != connectorWord {
@@ -401,7 +400,7 @@ func SwapCase(str string) string {
var r rune
var size int
buf := &bytes.Buffer{}
buf := &stringBuilder{}
for len(str) > 0 {
r, size = utf8.DecodeRuneInString(str)
@@ -435,7 +434,7 @@ func FirstRuneToUpper(str string) string {
return str
}
buf := &bytes.Buffer{}
buf := &stringBuilder{}
buf.WriteRune(unicode.ToUpper(r))
buf.WriteString(str[size:])
return buf.String()
@@ -453,7 +452,7 @@ func FirstRuneToLower(str string) string {
return str
}
buf := &bytes.Buffer{}
buf := &stringBuilder{}
buf.WriteRune(unicode.ToLower(r))
buf.WriteString(str[size:])
return buf.String()
@@ -566,7 +565,7 @@ func Successor(str string) string {
// Needs to add one character for carry.
if i < 0 && carry != ' ' {
buf := &bytes.Buffer{}
buf := &stringBuilder{}
buf.Grow(l + 4) // Reserve enough space for write.
if lastAlphanumeric != 0 {

View File

@@ -4,7 +4,6 @@
package xstrings
import (
"bytes"
"unicode/utf8"
)
@@ -28,7 +27,7 @@ func ExpandTabs(str string, tabSize int) string {
var r rune
var i, size, column, expand int
var output *bytes.Buffer
var output *stringBuilder
orig := str
@@ -43,7 +42,7 @@ func ExpandTabs(str string, tabSize int) string {
}
for i = 0; i < expand; i++ {
output.WriteByte(byte(' '))
output.WriteRune(' ')
}
column += expand
@@ -88,7 +87,7 @@ func LeftJustify(str string, length int, pad string) string {
remains := length - l
padLen := Len(pad)
output := &bytes.Buffer{}
output := &stringBuilder{}
output.Grow(len(str) + (remains/padLen+1)*len(pad))
output.WriteString(str)
writePadString(output, pad, padLen, remains)
@@ -114,7 +113,7 @@ func RightJustify(str string, length int, pad string) string {
remains := length - l
padLen := Len(pad)
output := &bytes.Buffer{}
output := &stringBuilder{}
output.Grow(len(str) + (remains/padLen+1)*len(pad))
writePadString(output, pad, padLen, remains)
output.WriteString(str)
@@ -140,7 +139,7 @@ func Center(str string, length int, pad string) string {
remains := length - l
padLen := Len(pad)
output := &bytes.Buffer{}
output := &stringBuilder{}
output.Grow(len(str) + (remains/padLen+1)*len(pad))
writePadString(output, pad, padLen, remains/2)
output.WriteString(str)
@@ -148,7 +147,7 @@ func Center(str string, length int, pad string) string {
return output.String()
}
func writePadString(output *bytes.Buffer, pad string, padLen, remains int) {
func writePadString(output *stringBuilder, pad string, padLen, remains int) {
var r rune
var size int

View File

@@ -4,7 +4,6 @@
package xstrings
import (
"bytes"
"strings"
"unicode/utf8"
)
@@ -131,7 +130,7 @@ func Insert(dst, src string, index int) string {
// Scrub scrubs invalid utf8 bytes with repl string.
// Adjacent invalid bytes are replaced only once.
func Scrub(str, repl string) string {
var buf *bytes.Buffer
var buf *stringBuilder
var r rune
var size, pos int
var hasError bool
@@ -144,7 +143,7 @@ func Scrub(str, repl string) string {
if r == utf8.RuneError {
if !hasError {
if buf == nil {
buf = &bytes.Buffer{}
buf = &stringBuilder{}
}
buf.WriteString(origin[:pos])

7
vendor/github.com/huandu/xstrings/stringbuilder.go generated vendored Normal file
View File

@@ -0,0 +1,7 @@
//+build go1.10
package xstrings
import "strings"
type stringBuilder = strings.Builder

View File

@@ -0,0 +1,9 @@
//+build !go1.10
package xstrings
import "bytes"
type stringBuilder struct {
bytes.Buffer
}

View File

@@ -4,7 +4,6 @@
package xstrings
import (
"bytes"
"unicode"
"unicode/utf8"
)
@@ -152,12 +151,12 @@ func NewTranslator(from, to string) *Translator {
continue
}
fromStart, toStart = tr.addRuneRange(fromStart, fromEnd, toStart, toStart, singleRunes)
_, toStart = tr.addRuneRange(fromStart, fromEnd, toStart, toStart, singleRunes)
fromEnd = utf8.RuneError
}
if fromEnd != utf8.RuneError {
singleRunes = tr.addRune(fromEnd, toStart, singleRunes)
tr.addRune(fromEnd, toStart, singleRunes)
}
tr.reverted = reverted
@@ -303,7 +302,7 @@ func (tr *Translator) Translate(str string) string {
orig := str
var output *bytes.Buffer
var output *stringBuilder
for len(str) > 0 {
r, size = utf8.DecodeRuneInString(str)
@@ -500,7 +499,7 @@ func Squeeze(str, pattern string) string {
var size int
var skipSqueeze, matched bool
var tr *Translator
var output *bytes.Buffer
var output *stringBuilder
orig := str
last = -1