Browse Source

add

master v0.0.28
realxlfd 2 months ago
parent
commit
c7785746e1
  1. 5
      cli/spinner/spinner.go
  2. 26
      cli/ui/key.go
  3. 10
      utils/file/fos/move.go
  4. 2
      utils/file/fscan/scanner.go
  5. 2
      utils/file/fscan/utils.go
  6. 47
      utils/strbuilder/builder.go

5
cli/spinner/spinner.go

@ -17,8 +17,9 @@ var (
)
var (
DELAY = 800 * time.Millisecond
UPDATE = 50 * time.Millisecond
DELAY = 800 * time.Millisecond
UPDATE = 50 * time.Millisecond
MSG_MAX_LENGTH = 30
)
const (

26
cli/ui/key.go

@ -1,10 +1,11 @@
package ui
import (
str "git.realxlfd.cc/RealXLFD/golib/utils/strbuilder"
"fmt"
"strconv"
"github.com/eiannone/keyboard"
"github.com/gookit/color"
"strconv"
)
var (
@ -17,14 +18,8 @@ func Init() error {
}
func WaitKeyEnter() {
builder := str.New()
builder.Add(
`按下`,
cyan(`ENTER`),
`继续...`,
"\n",
)
Printer(builder.String())
hint := fmt.Sprintf("按下%s继续...\n", cyan(`ENTER`))
Printer(hint)
for {
_, key, _ := keyboard.GetKey()
if key == keyboard.KeyEnter {
@ -45,15 +40,8 @@ func WaitKeyChoose(max int) int {
}
func WaitKeySwitch() bool {
builder := str.New()
builder.Add(
`(`,
cyan(`Y`),
`/`,
cyan(`N`),
`)`, "\n",
)
Printer(builder.String())
hint := fmt.Sprintf("(%s/%s)\n", cyan(`Y`), cyan(`N`))
Printer(hint)
for {
key, _, _ := keyboard.GetKey()
if key == 'y' {

10
utils/file/fo/move.go → utils/file/fos/move.go

@ -1,4 +1,4 @@
package fo
package fos
import (
"io"
@ -57,3 +57,11 @@ func copyFile(src string, dst string) error {
)
return err
}
func IsDir(path string) bool {
stat, err := os.Stat(path)
if err != nil {
panic(err)
}
return stat.IsDir()
}

2
utils/file/fscan/scanner.go

@ -54,7 +54,7 @@ func (s *FileScanner) ScanAll(allowedExts []string) *FileScanner {
return nil
}
// 若没有标注允许的后缀名,则将所有文件视为完成
if allowedExts == nil {
if len(allowedExts) == 0 {
s.results = append(
s.results,
path,

2
utils/file/fscan/utils.go

@ -16,7 +16,7 @@ func CheckDir(dir string) (ok bool) {
return false
}
func contains[T string | int](arr []T, match T) (ok bool) {
func contains(arr []string, match string) (ok bool) {
ok = false
for _, i := range arr {
if i == match {

47
utils/strbuilder/builder.go

@ -1,47 +0,0 @@
package strbuilder
import (
"errors"
"strconv"
"strings"
)
type Builder struct {
builder *strings.Builder
}
func New() *Builder {
return &Builder{
builder: &strings.Builder{},
}
}
func (b *Builder) String() string {
return b.builder.String()
}
func (b *Builder) Add(inputs ...any) *Builder {
for _, i := range inputs {
switch val := i.(type) {
case string:
b.builder.WriteString(val)
case int:
b.builder.WriteString(strconv.Itoa(val))
case rune:
b.builder.WriteRune(val)
case error:
b.builder.WriteString(val.Error())
default:
panic("SetCookies an unsupported value to stringBuilder")
}
}
return b
}
func (b *Builder) Reset() *Builder {
b.builder = &strings.Builder{}
return b
}
func (b *Builder) Error() error {
return errors.New(b.String())
}
Loading…
Cancel
Save