Documentation ¶
Index ¶
- Variables
- func CMD(command string) (output string, err error)
- func CMDArgs(args []string) (output string, err error)
- func CMDRealtime(command string, method func(line string)) error
- func CMDRealtimeArgs(args []string, method func(line string)) error
- func CMDRealtimeControl(command string, method func(line string), signal chan rune, ...) error
- func CMDRealtimeControlArgs(args []string, method func(line string), signal chan rune, winPssuspend string) error
- func CMDRealtimePrint(command string) error
- func CMDRealtimePrintGBK(command string) error
- func CheckTopDir(dir string) (bool, string)
- func CompareVersion(v1, v2 string) int
- func ConfigDir() string
- func ConvertString(s string) string
- func Decompress(from string, to string) error
- func DownloadFile(location string, url string) error
- func Exec(command string) (output string, err error)
- func ExecArgs(args []string) (output string, err error)
- func ExecRealtime(command string, method func(line string)) error
- func ExecRealtimeArgs(args []string, method func(line string)) error
- func ExecRealtimeControl(command string, method func(line string), signal chan rune, ...) error
- func ExecRealtimeControlArgs(args []string, method func(line string), signal chan rune, winPssuspend string) error
- func ExecRealtimePrint(command string) error
- func ExecRealtimePrintGBK(command string) error
- func FormatAbsPath(s string) string
- func FormatPath(s string) string
- func GetBinaryPath(binary string) (string, error)
- func GetFilePathFromDir(dir, name string) (result string)
- func GetHttpData(url string) (string, error)
- func GetHttpDataByteSlice(url string) ([]byte, error)
- func Getwd() (wd string)
- func GrabDownload(location string, url string) (filename string, err error)
- func IsCompressed(file string) bool
- func IsFileExisted(path string) bool
- func IsNonASCII(str string) bool
- func ListDir(path2List string, suffix []string) (files []string, err error)
- func Pause(a chan rune)
- func Quit(a chan rune)
- func ReadAll(path string) (string, error)
- func Resume(a chan rune)
- func SafeDecompress(from string, to string) error
- func ScanCRandLF(data []byte, atEOF bool) (advance int, token []byte, err error)
- func Test()
- func Unzip(zipFile string, to string) error
- func WriteFast(filePath string, content string) error
- func XCopy(from, to string) error
- func XMove(from, to string) error
- func Zip(from string, toZip string) error
- type Asset
- type GitHubLatest
- type Tool
- func (t *Tool) CheckEnvPath() bool
- func (t *Tool) CheckExist() bool
- func (t *Tool) GetCliVersion() (ver string, err error)
- func (t *Tool) Install() error
- func (t *Tool) ParseGithubApi(api string) (ver, url string, err error)
- func (t *Tool) ParseGithubApiData(jsonData []byte) (ver, url string, err error)
- func (t *Tool) ParseGithubLatestRelease() (ver, url string, err error)
- func (t *Tool) SetCliVersion() error
- func (t *Tool) Update() error
Constants ¶
This section is empty.
Variables ¶
var (
AppDeveloper = "One Studio"
)
Functions ¶
func CMDRealtime ¶ added in v0.1.8
func CMDRealtimeArgs ¶ added in v0.1.8
func CMDRealtimeControl ¶ added in v0.1.8
func CMDRealtimeControlArgs ¶ added in v0.1.8
func CMDRealtimePrint ¶ added in v0.1.8
执行一次command指令且实时输出每行结果
func CMDRealtimePrintGBK ¶ added in v0.1.8
执行时实时输出每行并解决cmd chcp 936 输出乱码问题
func CheckTopDir ¶ added in v0.1.0
去除顶层文件夹 TODO 借鉴ListDir只能获取一级目录 优化算法
func CompareVersion ¶ added in v0.1.0
比较版本号 1: v1>v2 -1: v1<v2 0: v1=v2
func DownloadFile ¶
下载文件 (存放位置,下载地址) 可能有蜜汁问题,请用下面的GrabDownload
func ExecRealtime ¶
func ExecRealtimeArgs ¶ added in v0.1.8
执行一次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 ExecRealtimePrintGBK ¶
执行时实时输出每行并解决cmd chcp 936 输出乱码问题
func GetFilePathFromDir ¶ added in v0.1.0
遍历寻找某个文件
func GetHttpDataByteSlice ¶ added in v0.1.0
利用HTTP Get请求获得数据的字节切片
func GrabDownload ¶ added in v0.1.0
下载文件,利用grab库
func SafeDecompress ¶ added in v0.1.0
可解压包含中文路径的压缩包
func ScanCRandLF ¶ added in v0.0.3
自定义Scanner分割的方式,\n和\r都分割
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
检查环境变量,有就设置Path和TakeOver=False,尝试获取Version
func (*Tool) CheckExist ¶ added in v0.1.0
检查工具是否存在 @param 空 @return bool->是否存在
func (*Tool) GetCliVersion ¶ added in v0.1.0
获取命令行工具的版本号 @param 空 @return string ver->版本号, error->错误 算法: - 判断工具存在 false -> 返回error - isCLI==false -> 返回error - 调用工具但不加参数,获得输出 - 利用VersionRegExp获取版本号,获取失败则返回error
func (*Tool) Install ¶ added in v0.1.0
安装/更新工具 @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
解析Github的API,获得版本号和下载地址 @param string api 接口的完整链接 @return ver->版本号, url->下载链接, error->错误 算法: - 尝试获取切片格式的数据,出错则返回error - 调用ParseGithubApiData
func (*Tool) ParseGithubApiData ¶ added in v0.1.0
解析从Github的API得到的json数据,获得版本号和下载地址 @param []byte json数据 @return ver->版本号, url->下载链接, error->错误 说明:string类型数据要转换成byte切片
func (*Tool) ParseGithubLatestRelease ¶ added in v0.1.0
解析Github的API,获得版本号和下载地址 @param 空 @return ver->版本号, url->下载链接, error->错误 算法: - 利用tool.GithubRepo的用户名/仓库名得到api的链接 - 尝试获取切片格式的数据,出错则返回error - 调用ParseGithubApiData