一、环境配置
Cobra既是用于创建强大的现代CLI应用程序的库,也是用于生成应用程序和命令文件的程序。程序选择Cobra进行命令行的解析,以下配置基于Ubuntu16.04
直接使用命令 go get -v github.com/spf13/cobra/cobra
下载会出现错误,首先需要安装golang的项目依赖test和sys
首先cd到$GOPATH/src/golang.org/x文件夹下,采用git clone命令安装两个依赖包如下
执行go install github.com/spf13/cobra/cobra命令即可在$GOBIN下生成对应的可执行文件
二、创建Agenda项目
首先在gowork/src/github.com/user目录下通过指令cobra init --pkg-name agenda创建一个项目文件夹agenda
通过tree查看此项目初始的文件树。
在项目文件夹下使用Cobra add命令可以为你的程序添加新的命令
- cobra add register(注册用户)
- cobra add login(用户登陆)
- cobra add logout(用户登出)
- cobra add findUser(查询用户)
- cobra add deleteUser(删除用户)
再添加一些其他需要实现的功能文件,最终tree之后的情况如下
三、代码实现
用户注册
- 注册新用户时,用户需设置一个唯一的用户名和一个密码。另外,还需登记邮箱及电话信息。
- 如果注册时提供的用户名已由其他用户使用,应反馈一个适当的出错信息;成功注册后,亦应反馈一个成功注册的信息。
/*
Copyright © 2019 NAME HERE <EMAIL ADDRESS>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package cmd
import (
"fmt"
"errors"
"github.com/spf13/cobra"
. "github.com/user/agenda/entity"
)
// registerCmd represents the register command
var registerCmd = &cobra.Command{
Use: "register",
Short: "A brief description of your command",
Long: `A longer description that spans multiple lines and likely contains examples
and usage of using your command. For example:
Cobra is a CLI library for Go that empowers applications.
This application is a tool to gener