验证toml配置文件合法性

背景

我们知道现在主流的配置文件格式有xml,json,toml,yaml,这里我以toml为例,因为我们项目用的是toml格式的配置文件。有一次线上发布代码的时候由于没有验证toml配置文件的合法性,配置推上去后,程序没有正常启动,导致服务不可用。

思考

出现这个失误之后,我认为应该可以在发布代码之前,先提前验证下配置文件的合法性,避免出现低级的人为失误,
把错误的配置文件推到线上去,于是想找可以验证toml配置文件的合法性的工具。

方案

这里需要安装golang,假设在linux环境下
  1. 获取源码

    go get github.com/BurntSushi/toml

  2. 进到目录github.com/BurntSushi/tomlcmd/tomlv 下,进行编译

    go build .

  3. 然后把tomlv放到/bin目录下。
  4. 验证toml配置文件合法性,用法如下:

    tomlv some-toml-file.toml

如果错误会有输出,比如

Error in ‘config.conf‘: Near line 1 (last key parsed ‘service‘): expected a top-level item to end with a newline, comment, or EOF, but got ‘]‘ instead

然后我们可以根据这个命令的返回状态来判断是否验证成功,0 成功 ,1 失败。

  1. 还有查看toml的配置项的各个类型:

    tomlv -types some-toml-file.toml

结果如下:

原文地址:https://blog.51cto.com/onebig/2446967

时间: 2024-10-09 18:26:02

验证toml配置文件合法性的相关文章

JS验证身份证的合法性

//验证身份证的合法性 function IdentityCodeValid(code) { var city={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江 ",31:"上海",32:"江苏",33:"浙江&quo

正则表达式验证邮箱的合法性

//利用正则表达式验证邮箱的合法性 -(BOOL)isValidateEmail:(NSString *)email { NSString *emailRegex = @"[A-Z0-9a-z._%+-][email protected][A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", email

用两种方法验证邮箱的合法性(最新)

代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.title=@"验证邮箱的合法性"; //最全面的验证邮箱的方法,用两种方法一起测试 NSString *email=@"[email protected]"; NSLog(@"---%i--",[self validateEmail:emai

验证邮箱的合法性

代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.title=@"验证邮箱的合法性"; NSString *email=@"[email protected]"; NSLog(@"--%i-",[self isValidateEmail:email]); } //用正则表达式 -(BOOL)i

验证邮箱的合法性(此方法比较准确)

代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.title=@"验证邮箱的合法性"; NSString *email=@"[email protected]"; NSLog(@"---%i--",[self validateEmail:email]); } //通过区分字符串 -(BOOL)

IOS开发中怎样验证邮箱的合法性

文章参考:http://www.codes51.com/article/detail_94157.html 代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. [email protected]"验证邮箱的合法性"; NSString *[email protected]"[email protected]"; NSLog(

JS的 验证组织机构的合法性

下面直接上代码 //验证组织机构合法性方法 function orgcodevalidate(value){ if(value!=""){ var values=value.split("-"); var ws = [3, 7, 9, 10, 5, 8, 4, 2]; var str = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; var reg = /^([0-9A-Z]){8}$/; if (!reg.test(values[

Struts2 验证规则配置文件

1. Action级别校验命名格式: ActionClassName-validation.xml 2. Action中某个方法的校验命名格式: ActionClassName-ActionAliasName-validation.xml 注意:这里的ActionAliasName(action别名)指的是struts.xml中Action name="XX"的xx的名称,而不是method="XX"的名称. 3. 如果以上2个校验文件都存在,那么2个文件都会被执行

33、验证客户端的合法性、socketserver模块

一.为了防止客户端被人非法利用,需要在使用之前对客户端进行合法性验证.接下来就是客户端验证的几种方法 hmac  加密方法 以下是服务端: import socket import os import hmac #能转化成密文模块 secret_key=b'apple' #密钥,必须是bytes类型 sk=socket.socket() sk.bind(('127.0.0.1',8008)) sk.listen() def check_con(con): #定义一个验证函数 msg=os.ura