一、环境配置
Cobra既是用于创建强大的现代CLI应用程序的库,也是用于生成应用程序和命令文件的程序。程序选择Cobra进行命令行的解析,以下配置基于Ubuntu16.04
Cobra安装
直接使用命令 go get -v github.com/spf13/cobra/cobra
下载会出现错误,首先需要安装golang的项目依赖test和sys
首先cd到$GOPATH/src/golang.org/x文件夹下,采用git clone命令安装两个依赖包如下
安装完成后重新执行go get命令即可完成安装
执行go install github.com/spf13/cobra/cobra命令即可在$GOBIN下生成对应的可执行文件
Cobra程序初始化
在新建的项目文件夹下使用cobra init --pkg-name [name]命令可以初始化一个新的项目,成功后初始化的项目结构如下
Cobra程序添加命令
在项目文件夹下使用Cobra add命令可以为你的程序添加新的命令,首先先添加一个login命令为例
可以看到命令执行完成后cmd文件夹下出现了一个login.go文件,只需要修改相应代码就可以执行相关命令了
二、代码实现
由于要求简化,此次我只实现了用户相关的命令,没有实现会议相关的命令
实现的操作包括
用户注册
- 注册新用户时,用户需设置一个唯一的用户名和一个密码。另外,还需登记邮箱及电话信息。
- 如果注册时提供的用户名已由其他用户使用,应反馈一个适当的出错信息;成功注册后,亦应反馈一个成功注册的信息。
用户注册的代码实现逻辑是首先读取命令接收到的用户信息,接下来需要查找要注册的用户名是否已经注册,如果注册需要返回出错信息,用户信息我使用了一个json文件进行存取,使用go语言的"encoding/json"包对其进行编码,这里我在entity包编写了两个辅助函数用于对用户信息的保存和读取,代码实现如下
func GetUsers() []User {
jsondata, err := ioutil.ReadFile("./data/userinfo.json")
if err != nil{
fmt.Println(err)
}
var users []User
json.Unmarshal(jsondata, &users)
return users
}
func SetUsers(users []User) {
//源文件清除
os.Truncate("./data/userinfo.json", 0)
//转为json串
jsondata, err := json.Marshal(users)
if err != nil{
fmt.Println(err)
}
ioutil.WriteFile("./data/userinfo.json",