Skip to content

转换为toml文件时如果key包含特殊字符会由于没有加引号导致二次解析失败 #2617

@Opamper

Description

@Opamper

在解析转换containerd服务的配置文件时,镜像仓库地址会包含“:”等特殊符号,导致解析失败

export HOSTS_REGI="http://sealos.hub:5000"

yq -i -p=toml -o=toml '.server = strenv(HOSTS_REGI)' /tmp/hosts-1.toml

yq -i -p=toml -o=toml 'with(.host[strenv(HOSTS_REGI)]; .capabilities = ["pull", "resolve", "push"] | .skip_verify = true)' /tmp/hosts-1.toml

生成后的toml文件host中的http://sealos.hub:5000并未带引号

server = "http://sealos.hub:5000"
host = { http://sealos.hub:5000 = { capabilities = ["pull", "resolve", "push"], skip_verify = true } }

再次解析报错

yq -i -p=toml -o=toml '.server = "xxx"' /tmp/hosts-1.toml

Error: bad file '/tmp/hosts.toml': expected character =

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions