mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-01-06 04:09:40 -06:00
Bumps [github.com/gookit/config/v2](https://github.com/gookit/config) from 2.2.6 to 2.2.7. - [Release notes](https://github.com/gookit/config/releases) - [Commits](https://github.com/gookit/config/compare/v2.2.6...v2.2.7) --- updated-dependencies: - dependency-name: github.com/gookit/config/v2 dependency-version: 2.2.7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
68 lines
1.3 KiB
Go
68 lines
1.3 KiB
Go
package cmdline
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/gookit/goutil/internal/comfunc"
|
|
"github.com/gookit/goutil/strutil"
|
|
)
|
|
|
|
// LineBuilder build command line string.
|
|
// codes refer from strings.Builder
|
|
type LineBuilder struct {
|
|
strings.Builder
|
|
}
|
|
|
|
// NewBuilder create
|
|
func NewBuilder(binFile string, args ...string) *LineBuilder {
|
|
b := &LineBuilder{}
|
|
|
|
if binFile != "" {
|
|
b.AddArg(binFile)
|
|
}
|
|
|
|
b.AddArray(args)
|
|
return b
|
|
}
|
|
|
|
// ResetGet value, will reset after get.
|
|
func (b *LineBuilder) ResetGet() string {
|
|
defer b.Reset()
|
|
return b.String()
|
|
}
|
|
|
|
// AddArg to builder
|
|
func (b *LineBuilder) AddArg(arg string) {
|
|
_, _ = b.WriteString(arg)
|
|
}
|
|
|
|
// AddArgs to builder
|
|
func (b *LineBuilder) AddArgs(args ...string) {
|
|
b.AddArray(args)
|
|
}
|
|
|
|
// AddArray to builder
|
|
func (b *LineBuilder) AddArray(args []string) {
|
|
for _, arg := range args {
|
|
_, _ = b.WriteString(arg)
|
|
}
|
|
}
|
|
|
|
// AddAny args to builder
|
|
func (b *LineBuilder) AddAny(args ...any) {
|
|
for _, arg := range args {
|
|
_, _ = b.WriteString(strutil.SafeString(arg))
|
|
}
|
|
}
|
|
|
|
// WriteString arg string to the builder, will auto quote special string.
|
|
// refer strconv.Quote()
|
|
func (b *LineBuilder) WriteString(a string) (int, error) {
|
|
// add sep on not-first write.
|
|
if b.Len() != 0 {
|
|
_ = b.WriteByte(' ')
|
|
}
|
|
|
|
return b.Builder.WriteString(comfunc.ShellQuote(a))
|
|
}
|