gobuild

package module
v0.7.4 Latest Latest
Warning

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

Go to latest
Published: May 28, 2019 License: MIT Imports: 11 Imported by: 1

README

gobuild Build Status Go version

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

命令行语法:
gobuild [options] [dependents]

options:
 -h    显示当前帮助信息;
 -v    显示 gobuild 和 Go 程序的版本信息;
 -r    是否搜索子目录,默认为 true;
 -i    是否显示被标记为 IGNORE 的日志内容,默认为 false,即不显示;
 -o    执行编译后的可执行文件名;
 -x    传递给编译程序的参数;
 -ext  需要监视的扩展名,默认值为"go",区分大小写,会去掉每个扩展名的首尾空格。
       若需要监视所有类型文件,请使用 *,传递空值代表不监视任何文件;
 -main 指定需要编译的文件,默认为""。

dependents:
 指定其它依赖的目录,只能出现在命令的尾部。
常见用法:
 // 监视当前目录下的文件,若发生变化,则触发 go build -main="*.go"
 gobuild

 // 监视当前目录和 ~/Go/src/github.com/issue9/term 目录下的文件,
 // 若发生变化,则触发 go build -main="main.go"
 gobuild -main=main.go ~/Go/src/github.com/issue9/term
支持平台:

平台支持依赖 colorsfsnotify 两个包, 目前支持以下平台:windows, linux, macOS, BSD。

安装
go get github.com/caixw/gobuild
版权

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

Documentation

Overview

Package gobuild 提供了对 Go 语言热编译的支持

Index

Constants

View Source
const (
	LogTypeSuccess int8 = iota + 1
	LogTypeInfo
	LogTypeWarn
	LogTypeError
	LogTypeIgnore
)

日志类型

Variables

This section is empty.

Functions

func Build

func Build(logs chan *Log,
	mainFiles string,
	outputName string,
	flags map[string]string,
	exts string,
	recursive bool,
	appArgs string,
	dir ...string) error

Build 执行热编译服务。

logs 编译是的各类事件输出通道; mainFiles 为 go build 最后的文件参数,可以为空,表示当前目录; outputName 指定可执行文件输出的文件路径,为空表示默认值, 若不带路径信息,会附加在 dir 的第一个路径上; exts 指定监视的文件扩展名,为空表示不监视任何文件,* 表示监视所有文件; recursive 是否监视子目录; appArgs 传递给程序的参数; flags 传递各个工具的参数,大致有以下向个,具体可参考 go build 的 xxflags 系列参数。

  • asm --> asmflags
  • gccgo --> gccgoflags
  • gc --> gcflags
  • ld --> ldflags

dir 表示需要监视的目录,至少指定一个目录,第一个目录被当作主目录,将编译其下的文件。

工作路径:如果 outputName 带路径信息,则会使用该文件所在目录作为工作目录, 如果未指定或是仅是一个文件名,则采用 dir 中的第一个参数作为其工作目录。

Types

type ConsoleLogs

type ConsoleLogs struct {
	Logs chan *Log
	// contains filtered or unexported fields
}

ConsoleLogs 将日志输出到控制台

func NewConsoleLogs

func NewConsoleLogs(showIgnore bool) *ConsoleLogs

NewConsoleLogs 声明 ConsoleLogs 实例

func (*ConsoleLogs) Stop

func (logs *ConsoleLogs) Stop()

Stop 停止输出

type Log

type Log struct {
	Type    int8
	Message string
}

Log 日志类型

Directories

Path Synopsis
一个简单的 Go 语言热编译工具。
一个简单的 Go 语言热编译工具。

Jump to

Keyboard shortcuts

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