general

package
v1.2.3 Latest Latest
Warning

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

Go to latest
Published: Feb 27, 2024 License: GPL-3.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Name    string = "Manager"                 // 程序名
	Version string = "v1.2.3"                  // 程序版本
	Project string = "github.com/yhyj/manager" // 项目地址
)

Variables

View Source
var (
	RegelarFormat   = "%s\n"   // 常规输出格式 常规输出: <输出内容>
	Regelar2PFormat = "%s%s\n" // 常规输出格式 常规输出·2部分: <输出内容1><输出内容2>

	TitleH1Format = "\n\x1b[36;3m%s\x1b[0m\n\n" // 标题输出格式 H1级别标题: <标题文字>

	LineHiddenFormat = "\x1b[30m%s\x1b[0m\n" // 分隔线输出格式 隐性分隔线: <分隔线>
	LineShownFormat  = "\x1b[30m%s\x1b[0m\n" // 分隔线输出格式 显性分隔线: <分隔线>

	SliceTraverseFormat                  = "\x1b[32m%s\x1b[0m\n"                                                                             // Slice输出格式 切片遍历: <切片内容>
	SliceTraverseSuffixFormat            = "\x1b[32m%s\x1b[0m%s%s\n"                                                                         // Slice输出格式 带后缀的切片遍历: <切片内容><分隔符><后缀>
	SliceTraverse2PFormat                = "\x1b[32m%s\x1b[0m%s\x1b[34m%s\x1b[0m\n"                                                          // Slice输出格式 切片遍历·2部分: <切片内容1><分隔符><切片内容2>
	SliceTraverse2PSuffixFormat          = "\x1b[32m%s\x1b[0m%s\x1b[34m%s\x1b[0m%s%s\n"                                                      // Slice输出格式 带后缀的切片遍历·2部分: <切片内容1><分隔符><切片内容2><分隔符><后缀>
	SliceTraverse2PSuffixNoNewLineFormat = "\x1b[32m%s\x1b[0m%s\x1b[34m%s\x1b[0m%s%s"                                                        // Slice输出格式 带后缀的切片遍历·2部分·不换行: <切片内容1><分隔符><切片内容2><分隔符><后缀>
	SliceTraverse3PSuffixFormat          = "\x1b[32m%s\x1b[0m%s\x1b[34m%s\x1b[0m%s\x1b[33m%s\x1b[0m%s%s\n"                                   // Slice输出格式 带后缀的切片遍历·3部分: <切片内容1><分隔符><切片内容2><分隔符><切片内容3><分隔符><后缀>
	SliceTraverse4PFormat                = "\x1b[32m%s\x1b[0m%s\x1b[34m%s\x1b[0m%s\x1b[33m%s\x1b[0m%s\x1b[35m%s\x1b[0m\n"                    // Slice输出格式 切片遍历·4部分: <切片内容1><分隔符><切片内容2><分隔符><切片内容3><分隔符><切片内容4>
	SliceTraverse4PSuffixFormat          = "\x1b[32m%s\x1b[0m%s\x1b[34m%s\x1b[0m%s\x1b[33m%s\x1b[0m%s\x1b[35m%s\x1b[0m%s%s\n"                // Slice输出格式 带后缀的切片遍历·4部分: <切片内容1><分隔符><切片内容2><分隔符><切片内容3><分隔符><切片内容4><分隔符><后缀>
	SliceTraverse5PFormat                = "\x1b[32m%s\x1b[0m%s\x1b[34m%s\x1b[0m%s\x1b[33m%s\x1b[0m%s\x1b[33m%s\x1b[0m%s\x1b[35m%s\x1b[0m\n" // Slice输出格式 切片遍历·5部分: <切片内容1><分隔符><切片内容2><分隔符><切片内容3><分隔符><切片内容4><分隔符><切片内容5>

	AskFormat = "\x1b[34m%s\x1b[0m" // 问询信息输出格式 问询信息: <问询信息>

	SuccessFormat                = "\x1b[32m%s\x1b[0m\n"     // 成功信息输出格式 成功信息: <成功信息>
	SuccessDarkFormat            = "\x1b[36m%s\x1b[0m\n"     // 成功信息输出格式 暗色成功信息: <成功信息>
	SuccessNoNewLineFormat       = "\x1b[32m%s\x1b[0m"       // 成功信息输出格式 成功信息·不换行: <成功信息>
	SuccessSuffixFormat          = "\x1b[32m%s\x1b[0m%s%s\n" // 成功信息输出格式 带后缀的成功信息: <成功信息><分隔符><后缀>
	SuccessSuffixNoNewLineFormat = "\x1b[32m%s\x1b[0m%s%s"   // 成功信息输出格式 带后缀的成功信息·不换行: <成功信息><分隔符><后缀>

	TipsPrefixFormat            = "%s%s\x1b[32m%s\x1b[0m\n"                  // 提示信息输出格式 带前缀的提示信息: <提示信息>
	Tips2PSuffixNoNewLineFormat = "\x1b[32m%s\x1b[0m%s\x1b[36m%s\x1b[0m%s%s" // 提示信息输出格式 带后缀的提示信息·2部分·不换行: <提示信息1><分隔符><提示信息2><分隔符><后缀>

	InfoFormat             = "\x1b[33m%s\x1b[0m\n"                        // 展示信息输出格式 展示信息: <展示信息>
	Info2PFormat           = "\x1b[33m%s%s\x1b[0m\n"                      // 展示信息输出格式 展示信息·2部分: <展示信息>
	InfoPrefixFormat       = "%s%s\x1b[33m%s\x1b[0m\n"                    // 展示信息输出格式 带前缀的展示信息: <前缀><分隔符><展示信息>
	Info2PPrefixFormat     = "%s%s\x1b[33m%s\x1b[0m%s\x1b[35m%s\x1b[0m\n" // 展示信息输出格式 带前缀的展示信息·2部分: <前缀><分隔符><展示信息1><分隔符><展示信息2>
	InfoSuffixFormat       = "\x1b[33m%s\x1b[0m%s%s\n"                    // 展示信息输出格式 带后缀的展示信息: <展示信息><分隔符><后缀>
	InfoPrefixSuffixFormat = "%s%s\x1b[33m%s\x1b[0m%s%s\n"                // 展示信息输出格式 带前后缀的展示信息: <前缀><分隔符><展示信息><分隔符><后缀>

	ErrorBaseFormat   = "\x1b[31m%s\x1b[0m\n"     // 错误信息输出格式 基础错误: <错误信息>
	ErrorPrefixFormat = "%s%s\x1b[31m%s\x1b[0m\n" // 错误信息输出格式 带前缀的错误: <前缀><分隔符><错误信息>
	ErrorSuffixFormat = "\x1b[31m%s\x1b[0m%s%s\n" // 错误信息输出格式 带后缀的错误: <错误信息><分隔符><后缀>
)
View Source
var (
	Run = "➤"
	Dot = "•"
	Yes = "✔"
	No  = "✘"
)
View Source
var (
	GitCommitHash string = "Unknown" // Git 提交 Hash
	BuildTime     string = "Unknown" // 编译时间
	BuildBy       string = "Unknown" // 编译者
)
View Source
var Arch = runtime.GOARCH // 系统架构
View Source
var Platform = runtime.GOOS // 操作系统
View Source
var ProgressParameters = map[string]string{
	"view": "0",
}
View Source
var UserInfo, _ = GetUserInfoByName(UserName) // 用户信息
View Source
var UserName = func() string {
	if GetVariable("SUDO_USER") != "" {
		return GetVariable("SUDO_USER")
	}
	return GetVariable("USER")
}()

用户名,当程序提权运行时,使用 SUDO_USER 变量获取提权前的用户名

Functions

func CompareFile

func CompareFile(file1Path string, file2Path string) (bool, error)

CompareFile 并发比较两个文件是否相同

参数:

  • file1Path: 文件1路径
  • file2Path: 文件2路径

返回:

  • 文件相同返回 true,出错或不同返回 false

func CreateDir

func CreateDir(dirPath string) error

CreateDir 创建文件夹

参数:

  • dirPath: 文件夹路径

返回:

  • 错误信息

func CreateFile

func CreateFile(filePath string) error

CreateFile 创建文件,包括其父目录

参数:

  • filePath: 文件路径

返回:

  • 错误信息

func Delay added in v1.0.8

func Delay(second float32)

Delay 延时

参数:

  • second: 延时秒数

func DeleteFile

func DeleteFile(filePath string) error

DeleteFile 删除文件

参数:

  • filePath: 文件路径

返回:

  • 错误信息

func FileEmpty

func FileEmpty(filePath string) bool

FileEmpty 判断文件是否为空

  • 无法判断文件夹

参数:

  • filePath: 文件路径

返回:

  • 文件为空返回 true,否则返回 false

func FileExist

func FileExist(filePath string) bool

FileExist 判断文件是否存在

参数:

  • filePath: 文件路径

返回:

  • 文件存在返回 true,否则返回 false

func FileSHA256 added in v1.0.4

func FileSHA256(filePath string) (string, error)

FileSHA256 计算文件的 SHA-256 校验和

参数:

  • filePath: 待校验文件

返回:

  • 校验和
  • 错误信息

func FolderEmpty

func FolderEmpty(dirPath string) bool

FolderEmpty 判断文件夹是否为空

  • 包括隐藏文件

参数:

  • dirPath: 文件夹路径

返回:

  • 文件夹为空返回 true,否则返回 false

func GetAbsPath added in v1.0.1

func GetAbsPath(filePath string) string

GetAbsPath 获取指定文件的绝对路径

参数:

  • filePath: 文件路径

返回:

  • 文件的绝对路径

func GetCurrentUserInfo

func GetCurrentUserInfo() (*user.User, error)

GetCurrentUserInfo 获取当前用户信息

返回:

  • 用户信息
  • 错误信息

func GetHostname

func GetHostname() string

GetHostname 获取系统 HOSTNAME

返回:

  • HOSTNAME 或空字符串

func GetLatestReleaseTag added in v1.0.4

func GetLatestReleaseTag(body []byte) (string, error)

GetLatestReleaseTag 解析 API 响应体,获取 Release 的最新 Tag

参数:

  • body: API 响应数据

返回:

  • 最新 Release 的 Tag
  • 错误信息

func GetLatestSourceHash added in v1.0.4

func GetLatestSourceHash(body []byte) (string, error)

GetLatestSourceHash 解析 API 响应体,获取源代码的最新提交的 Hash

参数:

  • body: API 响应数据

返回:

  • 最新提交的 Hash
  • 错误信息

func GetLatestSourceTag added in v1.0.4

func GetLatestSourceTag(body []byte) (string, error)

GetLatestSourceTag 解析 API 响应数据,获取源代码的最新 Tag

参数:

  • body: API 响应数据

返回:

  • 最新 Tag
  • 错误信息

func GetReleaseFileInfo added in v1.0.4

func GetReleaseFileInfo(body []byte, fileName FileName) (multipleFilesInfo, error)

GetReleaseFileInfo 解析 API 响应体,获取 Release 文件的信息

参数:

  • body: API 响应数据
  • fileName: 要获取其信息的文件名

返回:

  • 多文件信息(包括文件名 Name 、文件大小 Size 、文件类型 ContentType 、下载链接 DownloadUrl 和下载次数 DownloadCount)
  • 错误信息

func GetUserInfoById

func GetUserInfoById(userId int) (*user.User, error)

GetUserInfoById 根据 ID 获取用户信息

参数:

  • userId: 用户 ID

返回:

  • 用户信息
  • 错误信息

func GetUserInfoByName

func GetUserInfoByName(userName string) (*user.User, error)

GetUserInfoByName 根据用户名获取用户信息

参数:

  • userName: 用户名

返回:

  • 用户信息
  • 错误信息

func GetVariable

func GetVariable(key string) string

GetVariable 获取环境变量

参数:

  • key: 变量名

返回:

  • 变量值

func GoToDir

func GoToDir(dirPath string) error

GoToDir 进到指定文件夹

参数:

  • dirPath: 文件夹路径

返回:

  • 错误信息

func ListFolderFiles added in v1.1.2

func ListFolderFiles(dirPath string) ([]string, error)

ListFolderFiles 列出指定文件夹下的所有文件

参数:

  • dirPath: 文件夹路径

返回:

  • 文件列表
  • 错误信息

func PolicyKitAuthentication

func PolicyKitAuthentication()

PolicyKitAuthentication 使用 D-Bus 进行身份认证

func PrintDelimiter added in v1.0.8

func PrintDelimiter(length int)

PrintDelimiter 打印分隔符

参数:

  • length: 分隔符长度

func ProgramInfo

func ProgramInfo(only bool) string

ProgramInfo 返回程序信息

参数:

  • only: 是否只返回程序版本

返回:

  • 程序信息

func ReadFileCount added in v1.0.1

func ReadFileCount(file, key string) int

ReadFileCount 获取文件包含关键字的行的计数

参数:

  • file: 文件路径
  • key: 关键字

返回:

  • 包含关键字的行的数量

func ReadFileKey added in v1.0.1

func ReadFileKey(file, key string) string

ReadFileKey 读取文件包含关键字的行

参数:

  • file: 文件路径
  • key: 关键字

返回:

  • 包含关键字的行的内容

func ReadFileLine added in v1.0.1

func ReadFileLine(file string, line int) string

ReadFileLine 读取文件指定行

参数:

  • file: 文件路径
  • line: 行号

返回:

  • 指定行的内容

func RealLength added in v1.0.8

func RealLength(text string) int

RealLength 去除转义字符,获取文本实际长度

参数:

  • text: 文本

返回:

  • 实际长度

func RequestApi

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

RequestApi 请求 API ,返回响应数据

参数:

  • url: API 地址

返回:

  • 响应数据
  • 错误信息

func RunCommand

func RunCommand(command string, args []string) error

RunCommand 运行命令不返回命令的输出

参数:

  • command: 命令
  • args: 命令参数

返回:

  • 错误信息

func RunCommandGetResult

func RunCommandGetResult(command string, args []string) (string, error)

RunCommandGetResult 运行命令并返回命令的输出

参数:

  • command: 命令
  • args: 命令参数

返回:

  • 命令的输出
  • 错误信息

func SetVariable

func SetVariable(key, value string) error

SetVariable 设置环境变量

参数:

  • key: 变量名
  • value: 变量值

返回:

  • 错误信息

func UnzipFile added in v1.0.4

func UnzipFile(filePath, outputDir string) error

UnzipFile 检测压缩文件类型,执行相应的解压函数

参数:

  • filePath: 待解压文件
  • outputDir: 解压文件的存储目录

返回:

  • 错误信息

func WriteFile

func WriteFile(filePath string, content string) error

WriteFile 写入内容到文件

参数:

  • filePath: 文件路径
  • content: 内容

返回:

  • 错误信息

Types

type FileName added in v1.0.4

type FileName struct {
	ChecksumsFile string `json:"checksums"`
	ArchiveFile   string `json:"archive"`
}

要获取其信息的文件名

Jump to

Keyboard shortcuts

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