cmds

package
v0.0.0-...-532fb6e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 12, 2024 License: MIT Imports: 35 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
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
	},
}
View Source
var Active = &cli.Command{
	Name:  "active",
	Usage: "模拟鼠标和键盘操作,使电脑保持活动状态",
	Action: func(c *cli.Context) error {
		clock.SetInterval(moveTo, time.Second*30, false)
		select {}
	},
}

active

View Source
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

View Source
var Build = &cli.Command{
	Name:  "build",
	Usage: "nix run build 的简写",
	Action: func(c *cli.Context) error {
		return sys.Exec("nix", "run", "build")
	},
}
View Source
var Clone = &cli.Command{
	Name:  "clone",
	Usage: "相关信息",
	Action: func(c *cli.Context) error {
		return nil
	},
}

git clone

View Source
var Dev = &cli.Command{
	Name:  "dev",
	Usage: "nix run dev 的简写",
	Action: func(c *cli.Context) error {
		return sys.Exec("nix", "run", "dev")
	},
}
View Source
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

View Source
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
	},
}
View Source
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

View Source
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 文件操作命令集

View Source
var IP = &cli.Command{
	Name:  "ip",
	Usage: "查看当前ip信息",
	Action: func(c *cli.Context) error {
		fmt.Println(sys_ip.GetLocalIPNet().IP)
		return nil
	},
}
View Source
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
	},
}
View Source
var Install = &cli.Command{
	Name:  "install",
	Usage: "`升级安装所有依赖包",
	Action: func(c *cli.Context) error {
		return sys.Exec("go", "get", "-u")
	},
}

go get -u all

View Source
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}

View Source
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

View Source
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

View Source
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 生成密钥文件

View Source
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

View Source
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
	},
}
View Source
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

View Source
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

View Source
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

View Source
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

View Source
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

View Source
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

View Source
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

View Source
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

View Source
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

View Source
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.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL