asset

package
v0.7.0 Latest Latest
Warning

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

Go to latest
Published: Sep 16, 2024 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Err_0200010001 err.ErrCode = err.New(
	"0200010001",
	"Relative path %s with %s : %+v",
	"",
)

Err_0200010001 计算两个路径的相对路径失败。

Verbs:

0: 基础路径。
1: 目标路径。
2: filepath.Rel产生的错误信息。
View Source
var Err_0200020001 err.ErrCode = err.New(
	"0200020001",
	"Write file %s : %+v",
	"",
)

Err_0200020001 写入文件失败。

Verbs:

0: 文件路径。
1: os.WriteFile产生的错误信息。
View Source
var Err_0200020002 err.ErrCode = err.New(
	"0200020002",
	"Format file  %s : %+v",
	"可能得原因是:1.传入的文件内容缺少package。",
)

Err_0200020002 格式化文件失败。

Verbs:

0: 文件路径。
1: imports.Process产生的错误信息
View Source
var Err_0200020003 err.ErrCode = err.New(
	"0200020003",
	"Open file %s : %+v",
	"",
)

Err_0200020003 打开文件失败。

Verbs:

0: 文件路径。
1: os.Open产生的错误信息。
View Source
var Err_0200020004 err.ErrCode = err.New(
	"0200020004",
	"Create file %s : %+v",
	"可能原因是:1.传入的路径是一个文件而不是文件夹。",
)

Err_0200020004 创建文件失败。

Verbs:

0: 文件路径。
1: os.Create产生的错误信息。
View Source
var Err_0200020005 err.ErrCode = err.New(
	"0200020005",
	"Copy file %s to %s : %+v",
	"",
)

Err_0200020005 复制文件失败。

Verbs:

0: 源文件路径。
1: 目标文件路径。
2: io.Copy产生的错误信息。
View Source
var Err_0200020006 err.ErrCode = err.New(
	"0200020006",
	"File not exists %s",
	"",
)

Err_0200020006 文件不存在。

Verbs:

0: 文件路径。
View Source
var Err_0200020007 err.ErrCode = err.New(
	"0200020007",
	"Read file %s : %+v",
	"",
)

Err_0200020007 读取文件失败。

Verbs:

0: 文件路径。
1: bufio.Scanner产生的错误信息。
View Source
var Err_0200020008 err.ErrCode = err.New(
	"0200020008",
	"Insert position should not less than %d",
	"",
)

Err_0200020008 在文件中插入内容的位置不应该小于指定值

View Source
var Err_020002000x err.ErrCode = err.New(
	"020002000x",
	"%s.",
	"",
)

Err_020002000x 未知的错误。

Verbs:

0: 错误的信息。
View Source
var Err_0200030001 err.ErrCode = err.New(
	"0200030001",
	"Create directory %s : %+v",
	"可能得原因是:1.传入的文件夹路径不正确,比如传入一个空的路径``。 ",
)

Err_0200030001 创建文件夹失败。

Verbs:

0: 文件夹路径。
1: os.MkdirAll产生的错误信息。
View Source
var Err_0200030002 err.ErrCode = err.New(
	"0200030002",
	"Open directory %s : %+v",
	"",
)

Err_0200030002 打开文件夹失败。

Verbs:

0: 文件路径。
1: filepath.Walk产生的错误信息。

Functions

func CopyDir

func CopyDir(src string, dst string) error

CopyDir 复制整个目录

Params:

  • src: 源文件夹的路径. default: 111
  • dst: 目标文件夹的路径

Example:

err := asset.CopyDir("dir", "dir2")

if err != nil {
	fmt.Print(err)
}

ExamplePath: taurus_go_demo/asset/asset_test.go - TestCopyDir

ErrCodes:

  • Err_0200010001
  • Err_0200010007
  • Err_0200010008

func CopyFile

func CopyFile(src string, dst string) error

CopyFile 复制文件到目标路径。

Params:

  • src: 源文件的路径。
  • dst: 目标文件的路径。

Example:

err := asset.CopyFile("file.go", "file2.go")

if err != nil {
	fmt.Print(err)
}

ExamplePath: taurus_go_demo/asset/asset_test.go - TestCopy

ErrCodes:

  • Err_0200010004
  • Err_0200010005
  • Err_0200010006

func DirExists added in v0.7.0

func DirExists(dir, name string) (bool, error)

func FileExists added in v0.5.0

func FileExists(filePath string) bool

FileExists 检查文件是否存在。

Params:

  • filePath: 文件路径。

Returns:

0: 文件是否存在。

func ReadFileToBuffer added in v0.5.0

func ReadFileToBuffer(filePath string) (*bytes.Buffer, error)

ReadFileToBuffer 读取文件内容到缓冲区。

Params:

  • filename: 文件名。

Returns:

  • 文件内容。
  • 错误信息。

Types

type Assets

type Assets struct {
	// Dirs 用于存放需要创建的文件夹
	Dirs map[string]struct{}
	// Files 用于存放需要创建的文件
	Files map[string][]byte
}

Assets 用于存放需要创建的文件夹和文件

func (*Assets) Add

func (a *Assets) Add(path string, b []byte)

Add 用于在`Assets`中添加一个新的文件。

Params:

  • path: 文件路径。
  • b: 文件内容。

Example:

var assets asset.Assets

assets.Add("file.txt", []byte("Hellow, World!"))
assets.Add("../file_2.go", []byte(`
package main
import "fmt"
func Main() {fmt.Println("Hello, World!")}
`))
err := assets.Write()
if err != nil {
	fmt.Print(err)
}

ExamplePath: taurus_go_demo/asset/asset_test.go - TestAdd

func (*Assets) AddDir

func (a *Assets) AddDir(path string) error

AddDir 用于在`Assets`中添加一个新的文件夹。

Params:

  • path: 文件夹路径。

Returns:

0: 成功。

Example:

var assets asset.Assets
assets.AddDir("dir")
assets.AddDir("./dir2")
err := assets.Write()

if err != nil {
 fmt.Print(err)
}

ExamplePath: taurus_go_demo/asset/asset_test.go - TestAddDir

func (*Assets) Clear added in v0.5.0

func (a *Assets) Clear()

Clear 清空`Assets`中的Dirs和Files。

Example:

var assets asset.Assets
assets.Add("file.txt", []byte("Hellow, World!"))
assets.AddDir("dir")
assets.Clear()
fmt.Print(assets)

ExamplePath: taurus_go_demo/asset/asset_test.go - TestClear

func (Assets) Format

func (a Assets) Format() error

Format 格式化文件,目前只能用来格式化Go源文件。

Example:

var assets asset.Assets

assets.Add("test.go", []byte(`
package main
import "fmt"
func Main() {fmt.Println("Hello, World!")}
`))
err := assets.Write()
if err != nil {
	fmt.Print(err)
}
err = assets.Format()
if err != nil {
	fmt.Print(err)
}

ExamplePath: taurus_go_demo/asset/asset_test.go - TestFormat

ErrCodes:

  • Err_0200010002
  • Err_0200010003

func (Assets) Write

func (a Assets) Write() error

Write 写入全部的Dirs和Files,如果文件已经存在,则会覆盖。 执行后会清空Dirs和Files。

Example:

var assets asset.Assets assets.Add("file.txt", []byte("Hellow, World!")) assets.AddDir("dir") err := assets.Write()

if err != nil {
	fmt.Print(err)
}

ExamplePath: taurus_go_demo/asset/asset_test.go - TestWrite

ErrCodes:

  • Err_0200010001
  • Err_0200010002

type FileOperator added in v0.7.0

type FileOperator struct {
	FilePath string
	// contains filtered or unexported fields
}

FileOperator 文件操作者

这个结构体用于操作文件,比如读取文件内容,查找标记位置,插入代码等。 仅对文本文件有效。

func NewFileOperator added in v0.7.0

func NewFileOperator(filePath string) (*FileOperator, error)

NewFileOperator 创建一个新的 FileOperator 实例

func (*FileOperator) Append added in v0.7.0

func (fo *FileOperator) Append(content string)

Push 在文件末尾追加内容

func (*FileOperator) BatchInsert added in v0.7.0

func (fo *FileOperator) BatchInsert(pos int, contents []string) (nextPos int, err error)

BatchInsert 批量插入内容

Params:

  • index: 插入位置,会在这个位置插入,从1开始。比如 pos = 1,会在第一行后面插入,原本的第一行会变成第二行。
  • contents: 要插入的内容列表。

Returns:

0: 插入内容后一行的行号。
1: 错误信息。

func (*FileOperator) Find added in v0.7.0

func (fo *FileOperator) Find(marker string, isLike bool, startPos, endPos int) (int, error)

Find 查找文件中的标记位置, 如果找到则返回行号,行号从1开始;否则返回-1。

Params:

  • marker: 要查找的标记。
  • isLike: 是否使用模糊匹配。
  • startPos: 查找的起始位置,从0开始。如果小于0,则从第一行开始查找。
  • endPos: 查找的结束位置,如果小于0或大于文件行数,则到文件末尾。

Returns:

0: 标记所在行号。如果找不到,则返回-1。
1: 错误信息。

Example:

// 全文查询
pos, err := fo.Find("func main() {", true, -1, -1)

// 从第10行开始查询
pos, err := fo.Find("func main() {", true, 10, -1)

func (*FileOperator) FindRange added in v0.7.0

func (fo *FileOperator) FindRange(startMarker, endMarker string, isLike bool, startPos, endPos int) (int, int, error)

FindRange 查找文件中的两个标记之间的位置。

Params:

  • start: 起始标记。
  • end: 结束标记。
  • isLike: 是否使用模糊匹配。
  • startPos: 查找的起始位置,从0开始。如果小于0,则从第一行开始查找。
  • endPos: 查找的结束位置,如果小于0或大于文件行数,则到文件末尾。

Returns:

0: 起始行号。如果找不到,则返回-1,同时结束行号也为-1。
1: 结束行号。如果找不到,则返回-1。存在有起始行号但找不到结束行号的情况,此时起始行号大于0,结束行号为-1。
2: 错误信息。

func (*FileOperator) GetLine added in v0.7.0

func (fo *FileOperator) GetLine(pos int) string

GetLine 获取指定行的内容 如果行号超出范围,则返回空字符串。

func (*FileOperator) GetLines added in v0.7.0

func (fo *FileOperator) GetLines() []string

func (*FileOperator) Insert added in v0.7.0

func (fo *FileOperator) Insert(pos int, content string) (nextPos int, err error)

Insert 在指定位置插入内容

Params:

  • pos: 插入位置,会在这个位置插入,从1开始。比如 pos = 1,会在第一行后面插入,原本的第一行会变成第二行。
  • content: 要插入的内容。

Returns:

0: 插入内容后一行的行号。
1: 错误信息。

func (*FileOperator) ReadFile added in v0.7.0

func (fo *FileOperator) ReadFile() error

ReadFile 读取文件内容

func (*FileOperator) Save added in v0.7.0

func (fo *FileOperator) Save() error

Save 保存修改后的内容到文件

func (FileOperator) String added in v0.7.0

func (fo FileOperator) String() string

Jump to

Keyboard shortcuts

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