Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var About = &cli.Command{ Name: "about", Usage: "相关信息", Action: func(c *cli.Context) error { exePath, _ := sys.GetExePath() execPath, _ := os.Getwd() fmt.Printf(` %c[1;31;40m---关于---%c[0m 执行程序的所在位置:%s 当前程序执行位置:%s`, 0x1B, 0x1B, exePath, execPath) return nil }, }
var Active = &cli.Command{ Name: "active", Usage: "模拟鼠标和键盘操作,使电脑保持活动状态", Action: func(c *cli.Context) error { clock.SetInterval(moveTo, time.Second*30, false) select {} }, }
active
var Basis = &cli.Command{ Name: "basis", Usage: "将图片转成basis纹理图", Action: func(c *cli.Context) error { // ktx2 使用ktx2,内置纹理格式减少加载量 // comp_level 压缩等级 var args = []string{"-ktx2"} args = append(args, c.Args().Slice()...) sys.MemExec(embedBasisu, args...) return nil }, }
Basis basisu -ktx2 x.png
var Build = &cli.Command{ Name: "build", Usage: "nix run build 的简写", Action: func(c *cli.Context) error { return sys.Exec("nix", "run", "build") }, }
var Clone = &cli.Command{ Name: "clone", Usage: "相关信息", Action: func(c *cli.Context) error { return nil }, }
git clone
var Dev = &cli.Command{ Name: "dev", Usage: "nix run dev 的简写", Action: func(c *cli.Context) error { return sys.Exec("nix", "run", "dev") }, }
var Esbuild = &cli.Command{ Name: "esbuild", Usage: "相关信息", Action: func(c *cli.Context) error { args := c.Args() url := args.Get(0) result := api.Build(api.BuildOptions{ EntryPoints: []string{url}, MinifyWhitespace: true, MinifyIdentifiers: true, MinifySyntax: true, Outfile: "out.js", Write: true, }) if len(result.Errors) > 0 { return errors.New(result.Errors[0].Text) } return nil }, }
Esbuild
var Exec = &cli.Command{ Name: "exec", Usage: "执行脚本", Action: func(c *cli.Context) error { fmt.Println(sys.GetCurrentPath()) scriptName := c.Args().Get(0) command := exec.Command(filepath.Join(`./scripts`, scriptName)) result, err := command.Output() if err != nil { fmt.Println(err) } else { fmt.Println(result) } return nil }, }
var FBX2glTF = &cli.Command{ Name: "FBX2glTF", Usage: "将fbx模型格式转换为gltf", Action: func(c *cli.Context) error { args := c.Args().Slice() args = append([]string{"-b", "-d"}, args...) sys.MemExec(embedFBX2glTF, args...) return nil }, }
@see https://github.com/facebookincubator/FBX2glTF FBX2glTF -b -d -i xx.fbx -o xx.glb
var Fs = &cli.Command{ Name: "fs", Usage: "文件操作命令集", Subcommands: []*cli.Command{ { Name: "append", Usage: "批量往文件追加内容", Flags: []cli.Flag{ &cli.StringFlag{Name: "suffix"}, &cli.StringFlag{Name: "dir", Aliases: []string{"d"}}, &cli.StringFlag{Name: "start", Aliases: []string{"s"}}, }, Action: func(c *cli.Context) error { ds.EachFilesToAppendHead(c.String("d"), c.String("s"), map[string]any{ "suffix": c.String("suffix"), }) return nil }, }, { Name: "rename", Usage: "批量重命名文件", Flags: []cli.Flag{ &cli.StringFlag{Name: "dir", Aliases: []string{"d"}}, }, Action: func(c *cli.Context) error { return nil }, }, { Name: "split", Usage: "切割大文件", Flags: []cli.Flag{ &cli.StringFlag{Name: "name", Aliases: []string{"n"}}, &cli.StringFlag{Name: "chunkSize", Aliases: []string{"cs"}}, }, Action: func(c *cli.Context) error { chunkSize := c.Int("cs") if chunkSize == 0 { chunkSize = 1024 * 1000 * 1000 * 16 } return ds.SplitFile(c.String("name"), chunkSize) }, }, { Name: "merge", Usage: "合并被切割的大文件", Flags: []cli.Flag{ &cli.StringFlag{Name: "dir", Aliases: []string{"d"}}, }, Action: func(c *cli.Context) error { name := c.String("d") files, err := ds.GetFiles(name) slices.SortFunc(files, func(a string, b string) int { ai, _ := strconv.Atoi(filepath.Base(a)) bi, _ := strconv.Atoi(filepath.Base(b)) return ai - bi }) if err != nil { return err } return ds.MergeFiles(files, strings.Split(filepath.Base(name), "_")[0]) }, }, }, }
Fs 文件操作命令集
var IP = &cli.Command{ Name: "ip", Usage: "查看当前ip信息", Action: func(c *cli.Context) error { fmt.Println(sys_ip.GetLocalIPNet().IP) return nil }, }
var Init = &cli.Command{ Name: "init", Usage: "`初始化", Action: func(c *cli.Context) error { if ds.IsExist("package.json") { } else { ds_json.Save("package.json", &types.PackageJSON{ Name: sys.GetCurrentDirname(), Version: "1.0.0", Author: "mocheer", License: "MIT", Scripts: map[string]string{}, }) } return nil }, }
var Install = &cli.Command{ Name: "install", Usage: "`升级安装所有依赖包", Action: func(c *cli.Context) error { return sys.Exec("go", "get", "-u") }, }
go get -u all
var NSSM = &cli.Command{ Name: "nssm", Usage: "执行nssm.exe注册windows服务", Action: func(c *cli.Context) error { sys.MemExec(embedNSSM, c.Args().Slice()...) return nil }, }
nssm install {appName} {execPath}/charon.exe nssm start {appName} nssm stop {appName}
var Package = &cli.Command{ Name: "package", Usage: "查看配置文件", Action: func(c *cli.Context) error { data, err := ds_text.ReadFile("./package.json") if err == nil { fmt.Println(data) } return nil }, }
Package
var Publish = &cli.Command{ Name: "publish", Usage: "发布tag版本", Action: func(c *cli.Context) error { var conf types.PackageJSON err := ds_json.ReadFile("./package.json", &conf) if err == nil { sys.Exec("git", "tag", fmt.Sprintf("v%s", conf.Version)) sys.Exec("git", "push", "--tags") sys.Exec("nix", "version") } return nil }, }
git tag v1.0.0 git push --tags
var Rsa = &cli.Command{ Name: "rsa", Usage: "生成rsa文件", Action: func(c *cli.Context) error { dir := c.Args().Get(0) if dir == "" { dir = path.Join(global.ExportDir, "rsa") } ec_rsa.GenPemFiles(dir, 2048) return nil }, }
nix rsa 生成密钥文件
var Run = &cli.Command{ Name: "run", Usage: "执行脚本", Action: func(c *cli.Context) error { var conf types.PackageJSON err := ds_json.ReadFile("./package.json", &conf) if err == nil { scriptName := c.Args().Get(0) scriptContent := conf.Scripts[scriptName] if scriptContent != "" { scriptContent = fn.Format(scriptContent, ts.Map[any]{ "appName": conf.Name, "name": conf.Name, "version": conf.Version, "execPath": sys.GetCurrentPath(), }) fmt.Println("Powershell >", scriptContent) sys.Shell(scriptContent) postScriptContent := conf.Scripts[scriptName+"#post"] if postScriptContent != "" { sys.Shell(postScriptContent) fmt.Println("Powershell >", scriptContent) } } } return nil }, }
Run
var Scoop = &cli.Command{ Name: "scoop", Usage: "安装scoop", Action: func(c *cli.Context) error { sys.Shell("Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')") return nil }, }
var Serve = &cli.Command{ Name: "serve", Usage: "启动一个简易的web服务器", Action: func(c *cli.Context) error { http.Handle("/", http.FileServer(http.Dir("."))) fmt.Println("http://localhost:9212/") http.ListenAndServe(":9212", nil) return nil }, }
Serve : nix serve nix serve -p=9912
var Struct = &cli.Command{ Name: "struct", Usage: "从数据库中读取库表模型转成struct", Action: func(c *cli.Context) error { db, err := openDB() if err != nil { return err } query := db.Raw(`SELECT tb.tablename as tablename, a.attname AS columnname, t.typname AS type FROM pg_class as c, pg_attribute as a, pg_type as t, (select tablename from pg_tables where schemaname = @schema) as tb WHERE a.attnum > 0 and a.attrelid = c.oid and a.atttypid = t.oid and c.relname = tb.tablename order by tablename`, map[string]any{"schema": "pipal"}) result := scanIntoMap(query) fmt.Println(result) return nil }, }
Struct : nix struct schemeName
var Tif = &cli.Command{ Name: "tif", Usage: "查看tif文件标签属性", Action: func(c *cli.Context) error { args := c.Args() fileName := args.Get(0) fmt.Println(fileName) t, _ := ds_tif.Read(fileName) fmt.Println(t.Tif.IFDs()) return nil }, }
tif nix tif ./data/25S_20200101-20210101.tif
var Tile = &cli.Command{ Name: "tile", Usage: "下载在线瓦片地图", Action: func(c *cli.Context) error { args := c.Args() url := args.Get(0) name := args.Get(1) if name == "" { name = "data/tile-" + clock.Now().Fmt(clock.FmtCompactFullDate) } t := &tile.LoadConfig{ URL: url, DirName: name, MinZoom: 0, MaxZoom: 18, } t.LoadAndSave() return nil }, }
Tile : nix tile xxx nix tile "http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/{z}/{x}/{y}" data/tile-arcgis-dark nix tile "https://iserver.supermap.io/iserver/services/map-china400/rest/maps/ChinaDark/zxyTileImage.png?z={z}&x={x}&y={y}" data/tile-supermap-dark
var TileArcgis = &cli.Command{ Name: "tile-arcgis", Usage: "下载arcgis本地瓦片地图", Action: func(c *cli.Context) error { args := c.Args() url := args.Get(0) name := args.Get(1) if name == "" { name = "data/tile-" + clock.Now().Fmt(clock.FmtCompactFullDate) } return tile.LoadArcgis(url, name) }, }
Tile : nix tile xxx nix tile-arcgis "./dmap-arcgis/dq" test/tile-arcgis-dark
var TileXYZ = &cli.Command{ Name: "tile-xyz", Usage: "下载在线瓦片地图", Action: func(c *cli.Context) error { args := c.Args() url := args.Get(0) name := args.Get(1) if name == "" { name = "public/tile-" + clock.Now().Fmt(clock.FmtCompactFullDate) } c2 := &tile.LoadConfig{ URL: url, DirName: name, MinZoom: 0, MaxZoom: 18, Subdomains: strings.Split("123", ""), } c2.LoadAndSave() return nil }, }
TileXYZ : nix tile-xyz xxx nix tile-xyz "http://webrd0{s}.is.autonavi.com/appmaptile?lang=zh_cn&style=8&x={x}&y={y}&z={z}" public/GaodeMap.Normal nix tile-xyz "http://wprd0{s}.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=2&style=6" public/GaodeMap.Satellite nix tile-xyz "http://wprd0{s}.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=8" public/GaodeMap.Satellite_A nix tile-xyz "http://t{s}.tianditu.gov.cn/DataServer?T=vec_c&x={x}&y={y}&l={z}&tk=070a93160eddd5f891599e51a6b764ac" public/Tianditu.Normal nix tile-xyz "http://t{s}.tianditu.gov.cn/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=070a93160eddd5f891599e51a6b764ac" public/Tianditu.Normal_A nix tile-xyz "http://t{s}.tianditu.gov.cn/DataServer?T=img_c&x={x}&y={y}&l={z}&tk=60714a8ef3e4491df43827cd34c2aa22" public/Tianditu.Satellite nix tile-xyz "http://t{s}.tianditu.gov.cn/DataServer?T=cia_w&x={x}&y={y}&l={z}&tk=60714a8ef3e4491df43827cd34c2aa22" public/Tianditu.Satellite_A nix tile-xyz "https://tile{s}.tianditu.gov.cn/vts?t=vt&z={z}&x={x}&y={y}&tk=34568012b0e7be57119fa5124bd7bdd6" public/Tianditu.Normal_VT
var Tileset = &cli.Command{ Name: "tileset", Usage: "下载在线3dtiles模型数据", Action: func(c *cli.Context) error { args := c.Args() url := args.Get(0) name := args.Get(1) fmt.Println(url) if name == "" { name = "data/3dtiles-" + clock.Now().Fmt(clock.FmtCompactFullDate) } err := tileset.Load(url, name) fmt.Println(err) return nil }, }
Tileset : nix tileset xxx/tileset.json nix tileset http//122.112.175.6:8103/3dtile/tileset.json nix tileset https://www.thingjs.com/static/tilesData/tileset.json nix tileset https://tile.googleapis.com/v1/3dtiles/root.json?key=AIzaSyCnRPXWDIj1LuX6OWIweIqZFHHoXVgdYss googlephotorealistic3dtileset nix tileset http://data1.mars3d.cn/3dtiles/qx-hfdxy/tileset.json mars3d_video3d
var TilesetDem = &cli.Command{ Name: "tileset-dem", Usage: "下载在线3dtiles模型数据", Action: func(c *cli.Context) error { args := c.Args() url := args.Get(0) name := args.Get(1) fmt.Println(url) if name == "" { name = "data/3dtiles_dem-" + clock.Now().Fmt(clock.FmtCompactFullDate) } return nil }, }
Tileset : nix tileset xxx/tileset.json nix tileset-dem http////122.112.175.6:8114/dem/layer.json
var Upx = &cli.Command{ Name: "upx", Usage: "执行 upx 命令", SkipFlagParsing: true, Action: func(c *cli.Context) error { sys.MemExec(embedUpx, c.Args().Slice()...) return nil }, }
Upx upx -9 nix.exe
var Version = &cli.Command{ Name: "version", Usage: "修改版本号", Action: func(c *cli.Context) error { var conf types.PackageJSON err := ds_json.ReadFile("./package.json", &conf) if err == nil { versions := strings.Split(conf.Version, ".") pathchVersion := versions[len(versions)-1] pathchVersionInt := fn.ParseInt(pathchVersion) + 1 versions[len(versions)-1] = strconv.Itoa(pathchVersionInt) conf.Version = strings.Join(versions, ".") ds_json.Save("./package.json", conf) } return nil }, }
Functions ¶
This section is empty.
Types ¶
This section is empty.