gobuild

package module
v1.6.0 Latest Latest
Warning

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

Go to latest
Published: Sep 11, 2023 License: MIT Imports: 6 Imported by: 1

README

gobuild

Latest Release Test PkgGoDev Go version License codecov

gobuild 是一个简单的 Go 代码热编译工具。 会实时监控指定目录下的文件变化(重命名,删除,创建,添加),并编译和运行程序。

  • 采用配置文件,表达更加方便和直观;
  • 自动生成配置文件;
  • 自动监视 go.mod 中的 Replace 目录;
  • 本地化支持;

命令行语法

主要包含了 watch 和 init 两个子命令。具体的子命令可以通过 gobuild help 查看。

init

初始化项目,添加项目的必备的文件,比如热编译的配置文件 .gobuild.yaml。 如果是空目录,还会顺带初始化 go.mod 等文件。

gobuild init github.com/owner/mod
watch

监视文件并进行热编译,热编译的配置项从当前目录下的 .gobuild.yaml 加载。

gobuild watch [options]
配置文件

配置文件为当前目录下的 .gobuild.yaml,可由 gobuild init 子命令生成,包含了以下字段:

字段 类型 描述
main string 指定需要编译的文件,如果为空表示当前目录。
output string 指定可执行文件输出的文件路径
args string 传递给编译器的参数
exts []string 指定监视的文件扩展名,如果包含了 *,表示所有文件类型,包括没有扩展名的。
appArgs string 传递给编译成功后的程序的参数
freq duration 监视器的更新频率
excludes []string 忽略的文件,glob 格式,高于 exts 配置项。

安装

macOS 和 linux 用户可以直接使用 brew 进行安装:

brew tap caixw/brew
brew install caixw/brew/gobuild

常用平台可以从 https://github.com/caixw/gobuild/releases 下载,并将二进制文件放入 PATH 即可。

如果不存在你当前平台的二进制,可以自己编译:

git clone https://github.com/caixw/gobuild.git
cd gobuild
./build.sh

版权

本项目采用 MIT 开源授权许可证,完整的授权说明可在 LICENSE 文件中找到。

Documentation

Overview

Package gobuild 热编译 Go 代码

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Init added in v0.11.0

func Init(wd, name, configFilename string) error

Init 初始化一个空的项目

wd 为工作目录,将在此目录下初始化项目; configFilename 为配置文件的文件名; name 为 go.mod 中定义的模块的名称。 name 的最后一个元素会作为名称在 wd 指定的目录下创建子目录, 同时在子目录下会添加以下内容:

  • go.mod 以 name 作为模块名;
  • configFilename 指定的文件名作为 gobuild 的配置文件;
  • cmd/{base}/{base}.go 程序入口 main 函数,base 为 name 的最后一个元素;

func Watch added in v0.11.0

func Watch(ctx context.Context, p *message.Printer, l Logger, o *WatchOptions) error

Watch 监视文件变化执行热编译服务

p 用于处理本地化的错误信息; l 用于输出错误信息; 如果初始化参数有误,则反错误信息,如果是编译过程中出错,将直接将错误内容输出到 Logger

Types

type Logger added in v1.5.0

type Logger = watch.Logger

func NewConsoleLogger added in v1.5.0

func NewConsoleLogger(showIgnore bool, out io.Writer, colors map[int8]colors.Color, sources map[string]string) Logger

NewConsoleLogger 将日志输出到控制台的 Logger 实现

colors 表示各类日志的颜色值; sources 表示各类信息源的名称; colors 和 sources 可以为 nil,会采用默认值。

type WatchOptions added in v0.11.0

type WatchOptions = watch.Options

Directories

Path Synopsis
internal
config
Package config 提供操作配置文件的能力
Package config 提供操作配置文件的能力
Package watch 监视文件变化并编译
Package watch 监视文件变化并编译

Jump to

Keyboard shortcuts

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