代码拉取完成,页面将自动刷新
package yscmd
import (
"context"
"fmt"
"gitee.com/kmyss/gf-ex/ysansi"
"gitee.com/kmyss/gf-ex/yslog"
"github.com/gogf/gf/v2/os/gcmd"
"github.com/gogf/gf/v2/os/gfile"
"github.com/gogf/gf/v2/util/gconv"
"time"
)
// TimeToClose 延迟xx秒并显示提示
func TimeToClose(t int) {
TimeToCloseShell(context.TODO(), t)
}
// TimeToCloseShell 在 shell 模式下的退出方式
// 在 shell 模式下不执行等待
func TimeToCloseShell(ctx context.Context, t int) {
if IsShell(ctx) {
return
}
yslog.Printf("~~%d 秒后自动关闭~~", t)
for i := 0; i < t; i++ {
yslog.Printf("%3d s.....", t-i)
time.Sleep(1 * time.Second)
ysansi.DoClearOneLine()
}
}
// SelectFile 遍历文件夹下的文件内容让用户选择
// 不查找子文件夹
func SelectFile(path string, pattern string) string {
files, err := gfile.ScanDirFile(gfile.Abs(path), pattern)
if err != nil || !(len(files) > 0) {
yslog.Error("未查询到需要的文件!")
return ""
}
out := ""
for i, name := range files {
out += fmt.Sprintf("%d: %s \n", i+1, gfile.Basename(name))
}
out += "* 请选择文件 (默认:1) :"
scan := gcmd.Scan(out)
for {
i := -1
switch scan {
case "":
i = 1
default:
i = gconv.Int(scan)
}
if i <= 0 || i > len(files) {
scan = gcmd.Scan("* 输入错误请重新输入:")
} else {
return files[i-1]
}
}
}
// SelectConfig 找寻当前目录下的配置文件
func SelectConfig() string {
return SelectFile("./config", "*.toml")
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。