golang -- CLI 命令行实用程序开发实战 - Agenda

本文介绍了如何使用Golang的Cobra库开发命令行应用程序,特别是用户管理功能,如注册、登录、查询、删除和登出。通过Cobra的命令添加功能,详细阐述了代码实现过程,并提供了程序测试的各个步骤,包括环境配置、功能测试等。
摘要由CSDN通过智能技术生成

一、环境配置

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文件,只需要修改相应代码就可以执行相关命令了

 

二、代码实现

由于要求简化,此次我只实现了用户相关的命令,没有实现会议相关的命令

实现的操作包括

用户注册

  1. 注册新用户时,用户需设置一个唯一的用户名和一个密码。另外,还需登记邮箱及电话信息。
  2. 如果注册时提供的用户名已由其他用户使用,应反馈一个适当的出错信息;成功注册后,亦应反馈一个成功注册的信息。

用户注册的代码实现逻辑是首先读取命令接收到的用户信息,接下来需要查找要注册的用户名是否已经注册,如果注册需要返回出错信息,用户信息我使用了一个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", 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值