상호 작용으로 yaml을 축소할 수 있는 CLI 생성
개시하다
요즘 일 때문에 주변을 조금 둘러봤어요.k8s의 선언은yaml입니다.
kustoomize 등으로 자원을 정리하면 어쨌든 길어지고 가독성이 떨어지는 문제가 있다.
그래서 저는 jid 같은 상호작용을 할 수 있는 도구를 갖고 싶어서 조사를 해봤어요.
찾지 못해 CLIyd를 제작했습니다.
사용법
yd
에서 파이프, 파일, URL에서yaml을 읽을 수 있습니다.$ yd file.yaml
$ yd https://sample.com/file.yaml
$ yd < file.yaml
$ yd -f file.yaml
CLI를 실행한 후 화면 상부에 조회를 입력하는 곳이 있는데 거기에 조회를 입력하고 상호작용으로yaml을 축소한다.예를 들어 다음yaml의 경우
.tags
에 입력하면 그림처럼 축소할 수 있습니다.사용할 수 있는 질의는 여기.를 참조하십시오.
swagger: "2.0"
info:
description: "This is a sample server Petstore server. You can find out more about Swagger at <a href=\"http://swagger.io\">http://swag
ger.io</a> or on irc.freenode.net, #swagger. For this sample, you can use the api key \"special-key\" to test the authorization filters"
version: 1.0.0
title: Swagger Petstore YAML
termsOfService: "http://swagger.io/terms/"
contact:
email: "[email protected]"
license:
name: Apache 2.0
url: "http://www.apache.org/licenses/LICENSE-2.0.html"
basePath: /v2
tags:
- name: pet
description: Everything about your Pets
externalDocs:
description: Find out more
url: "http://swagger.io"
- name: store
description: Operations about user
- name: user
description: Access to Petstore orders
externalDocs:
description: Find out more about our store
실패하다
yd
내부 사용yq.yq
에서는 코어 처리가 yqlib
로 잘리기 때문에 CLI가 내부에서 사용됩니다.따라서 조회의 해석과 축소 처리는 실현할 수 없고 앞부분만 실현할 수 있다.
관련 문서를 찾을 수 없음
yqlib
yq
의 실시 방식은 조회expr
를 공식으로 해석한 후 평가eval
하는 것이기 때문에 직관적이고 이해하기 쉽다.yd
에서는 분석기와 평가기를 사용하여 입력할 때마다 분석과 평가를 하고 결과를 그린다.node, err := ui.Parser.ParseExpression(expr)
if err != nil {
return
}
...
if err := ui.Evaluator.Evaluate("-", &in, node, ui.Printer); err != nil {
return
}
ui.View.SetText(tview.TranslateANSI(ui.Out.String())).ScrollToBeginning()
yd
자체의 설치는 매우 간단합니다. 상세한 설치를 원하신다면 언제든지 창고를 확인하세요.최후
yd
투박하게 제작돼 작업 중 최소한의 사용 수준에 도달해 공개됐지만, 도구로서의 완성도가 전혀 만족하지 않아 조금이나마 개선하려고 한다.움직일 수 없는 곳이 있을지도 모르니 관심 있는 사람이 해 보세요.
Reference
이 문제에 관하여(상호 작용으로 yaml을 축소할 수 있는 CLI 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/skanehira/articles/2021-03-20-go-yaml-yd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)