[TOC]
> [参考](https://goframe.org/toolchain/cli)
## 概述
## 安装
### Linux
`wget https://goframe.org/cli/linux_amd64/gf && chmod +x gf && sudo ./gf `install
### Mac
`wget https://goframe.org/cli/darwin_amd64/gf && chmod +x gf && ./gf install`
### Windows
下载 `https://goframe.org/cli/windows_amd64/gf.exe`
## 语法
```
gf tool chain
install 工具安装
version 工具版本查看
init 项目初始化
build 交叉编译
gen 代码生成命令
run 热编译(自动编译)
get 依赖包下载
docker 镜像编译
update 工具更新
pack 二进制打包
help 命令行帮助
```
### `gf init `初始化项目
`gf init gf-demo`
### `gf build` 交叉编译
语法:
`gf build FILE [OPTION]`
eg:
`gf build main.go`
默认读取`config.toml`
```
[compiler]
name = "my-app" #应用名
version = "1.0.0"
arch = "386,amd64"
system = "linux,windows,darwin" # 选择编译平台
output = ""
path = "./bin/" # 导出目录
extra = "-ldflags \"-s -w\""
# 自定义编译时内置变量
[compiler.VarMap]
author = "john"
email = "john@goframe.org"
```
项目导出到 ./bin/ /summary>
```
bin
└── 1.0.0
├── windows_amd64
│ └── my-app.exe
├── windows_386
│ └── my-app.exe
├── linux_amd64
│ └── my-app
├── linux_386
│ └── my-app
├── darwin_amd64
│ └── my-app
└── darwin_386
└── my-app
```
### `gf gen` 代码生成命令
注意配置 `config.toml` 的数据库
语法:`gf gen model [PATH] [OPTION]`
例子 : `gf gen model ./app/model_demo`
不添加 path 则默认为 `./app/model`
每个表一个目录,目录下生成三个文件
1. `数据表名.go` 自定义文件,开发者可以自由定义填充的代码文件,仅会生成一次,每一次模型生成不会覆盖。
2. `数据表名_entity.go` 表结构文件,根据数据表结构生成的结构体定义文件,包含字段注释。数据表在外部变更后,可使用gen命令重复生成更新该文件。
3. `数据表名_model.go` 表模型文件,为数据表提供了许多便捷的CURD操作方法,并可直接查询返回该表的结构体对象。数据表在外部变更后,可使用gen命令重复生成更新该文件。
> 数据表模型生成支持的数据库类型为:`MySQL/MariaDB`、`PostgreSQL`、`SQLite`、`SQLServer`。目前暂不支持`Oracle`
### `run`热编译(自动编译)
使用方式:`gf get PACKAGE`
`gf get`命令和`go get`命令类似,内部自动提供了代理设置功能,并智能识别并设置最快的下载代理地址
## `update`工具更新
使用方式:`gf update`
该命令用以检测`gf`命令行工具的版本,并自动执行版本更新。
> 部分系统需要管理员权限支持。如果更新失败,请手动重新下载更新