Apache OpenWhisk CLI 项目教程
1. 项目的目录结构及介绍
Apache OpenWhisk CLI 项目的目录结构如下:
openwhisk-cli/
├── .github/
├── build/
├── cmd/
├── docs/
├── releases/
├── tests/
├── vendor/
├── .gitignore
├── .travis.yml
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── Makefile
├── README.md
├── go.mod
├── go.sum
目录介绍:
.github/
: GitHub 配置文件,如 issue 模板和 PR 模板。build/
: 包含构建脚本和相关工具。cmd/
: 包含 CLI 的主要命令实现。docs/
: 项目文档。releases/
: 发布版本的二进制文件。tests/
: 测试脚本和测试数据。vendor/
: 依赖包管理。.gitignore
: Git 忽略文件配置。.travis.yml
: Travis CI 配置文件。CHANGELOG.md
: 项目变更日志。CODE_OF_CONDUCT.md
: 行为准则。CONTRIBUTING.md
: 贡献指南。LICENSE
: 项目许可证。Makefile
: 构建和测试的 Makefile。README.md
: 项目介绍和使用说明。go.mod
和go.sum
: Go 模块依赖管理文件。
2. 项目的启动文件介绍
项目的启动文件位于 cmd/
目录下,主要文件为 wsk.go
,它是 CLI 的入口文件。
// cmd/wsk.go
package main
import (
"github.com/apache/openwhisk-cli/commands"
"github.com/apache/openwhisk-cli/wski18n"
"github.com/apache/openwhisk-cli/wskprint"
"github.com/spf13/cobra"
)
func main() {
var rootCmd = &cobra.Command{
Use: "wsk",
Short: wski18n.T("command-line interface for OpenWhisk"),
Long: wski18n.T("OpenWhisk command-line interface"),
}
commands.AddCommands(rootCmd)
wskprint.SetColor(wskprint.ColorAlways)
rootCmd.SetHelpCommand(&cobra.Command{Hidden: true})
rootCmd.Execute()
}
启动文件介绍:
main
函数是 CLI 的入口点。rootCmd
是根命令,定义了 CLI 的基本信息和用法。commands.AddCommands(rootCmd)
函数用于添加所有子命令。wskprint.SetColor(wskprint.ColorAlways)
设置输出颜色。
3. 项目的配置文件介绍
项目的配置文件主要涉及 .gitignore
、.travis.yml
和 Makefile
。
.gitignore
.gitignore
文件用于指定 Git 忽略的文件和目录,避免将不必要的文件提交到版本库。
# .gitignore
*.swp
*.swo
*.bak
*.tmp
*.log
*.DS_Store
.idea/
.vscode/
vendor/
.travis.yml
.travis.yml
文件是 Travis CI 的配置文件,用于自动化构建和测试。
# .travis.yml
language: go
go:
- 1.15
- 1.16
install:
- make get-tools
- make install
script:
- make test
- make lint
notifications:
email: false
Makefile
Makefile
文件包含构建和测试的命令。
# Makefile
.PHONY: all build test lint clean get-tools install
all: build
build:
go build -o wsk ./cmd/wsk
test:
go test ./...
lint:
golint ./...
clean:
rm -f wsk
get-tools: