ptools

package
v0.1.9 Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2022 License: MIT Imports: 27 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	AppDeveloper = "One Studio"
)

Functions

func CMD added in v0.1.0

func CMD(command string) (output string, err error)

调用CMD或者bash执行指令,适用于终端指令

func CMDArgs added in v0.1.8

func CMDArgs(args []string) (output string, err error)

执行一次command指令 经过cmd

func CMDRealtime added in v0.1.8

func CMDRealtime(command string, method func(line string)) error

func CMDRealtimeArgs added in v0.1.8

func CMDRealtimeArgs(args []string, method func(line string)) error

func CMDRealtimeControl added in v0.1.8

func CMDRealtimeControl(command string, method func(line string), signal chan rune, winPssuspend string) error

func CMDRealtimeControlArgs added in v0.1.8

func CMDRealtimeControlArgs(args []string, method func(line string), signal chan rune, winPssuspend string) error

func CMDRealtimePrint added in v0.1.8

func CMDRealtimePrint(command string) error

执行一次command指令且实时输出每行结果

func CMDRealtimePrintGBK added in v0.1.8

func CMDRealtimePrintGBK(command string) error

执行时实时输出每行并解决cmd chcp 936 输出乱码问题

func CheckTopDir added in v0.1.0

func CheckTopDir(dir string) (bool, string)

去除顶层文件夹 TODO 借鉴ListDir只能获取一级目录 优化算法

func CompareVersion added in v0.1.0

func CompareVersion(v1, v2 string) int

比较版本号 1: v1>v2 -1: v1<v2 0: v1=v2

func ConfigDir added in v0.1.5

func ConfigDir() string

func ConvertString

func ConvertString(s string) string

转换编码解决chcp936的中文乱码问题

func Decompress added in v0.1.0

func Decompress(from string, to string) error

解压zip 7z rar tar

func DownloadFile

func DownloadFile(location string, url string) error

下载文件 (存放位置,下载地址) 可能有蜜汁问题,请用下面的GrabDownload

func Exec

func Exec(command string) (output string, err error)

执行一次command指令 直接调用

func ExecArgs added in v0.1.3

func ExecArgs(args []string) (output string, err error)

参数以切片形式存放

func ExecRealtime

func ExecRealtime(command string, method func(line string)) error

func ExecRealtimeArgs added in v0.1.8

func ExecRealtimeArgs(args []string, method func(line string)) error

执行一次command指令且自定义方法处理每行结果

func ExecRealtimeControl added in v0.0.3

func ExecRealtimeControl(command string, method func(line string), signal chan rune, winPssuspend string) error

windows要用winPssuspend.exe 需指定其路径 其他系统留空

func ExecRealtimeControlArgs added in v0.1.4

func ExecRealtimeControlArgs(args []string, method func(line string), signal chan rune, winPssuspend string) error

执行指令 实时控制 winPssuspend留空

func ExecRealtimePrint

func ExecRealtimePrint(command string) error

执行一次command指令且实时输出每行结果

func ExecRealtimePrintGBK

func ExecRealtimePrintGBK(command string) error

执行时实时输出每行并解决cmd chcp 936 输出乱码问题

func FormatAbsPath

func FormatAbsPath(s string) string

规格化到绝对路径

func FormatPath

func FormatPath(s string) string

规格化路径

func GetBinaryPath

func GetBinaryPath(binary string) (string, error)

查找(环境变量+当前位置)可执行文件的位置

func GetFilePathFromDir added in v0.1.0

func GetFilePathFromDir(dir, name string) (result string)

遍历寻找某个文件

func GetHttpData

func GetHttpData(url string) (string, error)

利用HTTP Get请求获得数据

func GetHttpDataByteSlice added in v0.1.0

func GetHttpDataByteSlice(url string) ([]byte, error)

利用HTTP Get请求获得数据的字节切片

func Getwd

func Getwd() (wd string)

获取当前程序路径 最好直接用 os.Getwd

func GrabDownload added in v0.1.0

func GrabDownload(location string, url string) (filename string, err error)

下载文件,利用grab库

func IsCompressed added in v0.1.0

func IsCompressed(file string) bool

判断是不是这里支持的压缩包格式

func IsFileExisted

func IsFileExisted(path string) bool

判断文件/文件夹是否存在

func IsNonASCII

func IsNonASCII(str string) bool

判断是不是non-ASCII

func ListDir

func ListDir(path2List string, suffix []string) (files []string, err error)

获取指定路径下的所有文件,只搜索当前路径,不进入下一级目录,可匹配后缀过滤(suffix为空则不过滤)

func Pause added in v0.0.3

func Pause(a chan rune)

实时控制的时候暂停

func Quit added in v0.0.3

func Quit(a chan rune)

实时控制的时候结束

func ReadAll

func ReadAll(path string) (string, error)

快速打开文件和读内容

func Resume added in v0.0.3

func Resume(a chan rune)

实时控制的时候继续

func SafeDecompress added in v0.1.0

func SafeDecompress(from string, to string) error

可解压包含中文路径的压缩包

func ScanCRandLF added in v0.0.3

func ScanCRandLF(data []byte, atEOF bool) (advance int, token []byte, err error)

自定义Scanner分割的方式,\n和\r都分割

func Test

func Test()

简单测试 打个招呼

func Unzip added in v0.1.0

func Unzip(zipFile string, to string) error

Zip解压

func WriteFast

func WriteFast(filePath string, content string) error

快速文件写先清空再写入

func XCopy

func XCopy(from, to string) error

复制文件夹或者文件

func XMove

func XMove(from, to string) error

移动文件夹或者文件

func Zip added in v0.1.0

func Zip(from string, toZip string) error

Zip压缩

Types

type Asset added in v0.1.0

type Asset struct {
	URL                string `json:"url"`
	ID                 int    `json:"id"`
	Name               string `json:"name"`
	ContentType        string `json:"content_type"`
	State              string `json:"state"`
	Size               int    `json:"size"`
	BrowserDownloadURL string `json:"browser_download_url"`
}

Github Asset

type GitHubLatest added in v0.1.0

type GitHubLatest struct {
	URL     string  `json:"url"`
	TagName string  `json:"tag_name"`
	Name    string  `json:"name"`
	Message string  `json:"message"`
	Assets  []Asset `json:"assets"`
}

Github Latest Info

type Tool added in v0.1.0

type Tool struct {
	Name            string   //工具名
	Path            string   //工具路径,包含工具名,安装&更新时按该路径操作
	TakeOver        bool     //工具更新是否由这里接管,false->用户自行更新
	Version         string   //版本号
	VersionApi      string   //获得版本号的官方 API
	VersionApiCDN   string   //获得版本号的CDN API
	DownloadLink    string   //官方源的下载地址
	DownloadLinkCDN string   //CDN源的下载地址
	VersionRegExp   string   //从命令行程序解析版本号的正则表达式
	GithubRepo      string   //GitHub仓库的"用户名/仓库名"
	IsGitHub        bool     //是否为GitHub地址
	IsCLI           bool     //是否为命令行程序
	KeyWords        []string //下载的文件的关键字
	NonKeyWords     []string //下载的文件不包含的关键字
	Fetch           string   //在压缩包解压得到的文件中取得某文件作为工具可执行文件
}

func (*Tool) CheckEnvPath added in v0.1.0

func (t *Tool) CheckEnvPath() bool

检查环境变量,有就设置Path和TakeOver=False,尝试获取Version

func (*Tool) CheckExist added in v0.1.0

func (t *Tool) CheckExist() bool

检查工具是否存在 @param 空 @return bool->是否存在

func (*Tool) GetCliVersion added in v0.1.0

func (t *Tool) GetCliVersion() (ver string, err error)

获取命令行工具的版本号 @param 空 @return string ver->版本号, error->错误 算法: - 判断工具存在 false -> 返回error - isCLI==false -> 返回error - 调用工具但不加参数,获得输出 - 利用VersionRegExp获取版本号,获取失败则返回error

func (*Tool) Install added in v0.1.0

func (t *Tool) Install() error

安装/更新工具 @param 空 @return error->错误 说明:工具是否在环境变量中不在此包中实现,判断之后设置tool的参数,则不论在何处都是适用的 算法: - 检查工具 不存在 -> 尝试安装/更新, 存在 -> TakeOver==false -> 停止更新 - 分割路径,检查安装位置dir,不存在则创建,创建失败返回error - 同时检查官方源和CDN源,根据结果设置srcOK/cdnOK为true/false - 根据 srcOK cdnOK srcVer cdnVer 决定安装方式

  • srcOK/cdnOK 均为false->返回error
  • srcOK/cdnOK true/false各一->直接下载
  • srcOK/cdnOK 均为true->比较srcVer和cdnVer
  • 版本相等->先下载cdn源,失败->下载官方源 //同时下载直到某一个下载完成
  • srcVer > cdnVer -> 下载官方源
  • srcVer < cdnVer -> 返回error "cdn version is above source version"

- 根据 format 安装下载好的文件 isCompressed

  • 压缩包->解压到"dir/工具名/"
  • 非压缩包->移动到"dir/工具名/"

func (*Tool) ParseGithubApi added in v0.1.0

func (t *Tool) ParseGithubApi(api string) (ver, url string, err error)

解析Github的API,获得版本号和下载地址 @param string api 接口的完整链接 @return ver->版本号, url->下载链接, error->错误 算法: - 尝试获取切片格式的数据,出错则返回error - 调用ParseGithubApiData

func (*Tool) ParseGithubApiData added in v0.1.0

func (t *Tool) ParseGithubApiData(jsonData []byte) (ver, url string, err error)

解析从Github的API得到的json数据,获得版本号和下载地址 @param []byte json数据 @return ver->版本号, url->下载链接, error->错误 说明:string类型数据要转换成byte切片

func (*Tool) ParseGithubLatestRelease added in v0.1.0

func (t *Tool) ParseGithubLatestRelease() (ver, url string, err error)

解析Github的API,获得版本号和下载地址 @param 空 @return ver->版本号, url->下载链接, error->错误 算法: - 利用tool.GithubRepo的用户名/仓库名得到api的链接 - 尝试获取切片格式的数据,出错则返回error - 调用ParseGithubApiData

func (*Tool) SetCliVersion added in v0.1.0

func (t *Tool) SetCliVersion() error

设置命令行版本号

func (*Tool) Update added in v0.1.0

func (t *Tool) Update() error

检查更新 @param 空 @return error->错误

Jump to

Keyboard shortcuts

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