작업 러너 mask 추천

2581 단어 MarkdownRust

이게 뭐야?



이 기사는 FOLIO Advent calendar 2019의 21 일째 기사입니다.
20일째는 sachiohappy08씨의 현역 편집자가 웹 엔지니어에게 알리고 싶은 출판 업계와 인세 이야기이었습니다.
22일째는 k_masa777고통받은 ScopedStorage에 대해입니다.

jakedeichert/mask 를 사용해 보았고, 개발이 끝났기 때문에 다른 사람들에게 추천하고 싶었기 때문에 써 보았습니다.

추천하는 이유



당사는 마이크로서비스를 채용하고 있으므로, 여러 리포지토리를 동시에 볼 필요가 있습니다.
그 때, 각 디렉토리를 이동하지 않고 마이크로서비스 리포지토리의 태스크 러너를 취급하거나 미들웨어를 docker로 집계하고 싶을 때, 자신만의 태스크 러너로서 markdown으로 작성된 태스크의 정의를 실행할 수 있기 때문에 , 각 서비스를 더럽히지 않고 잘 취급할 수 있으므로, 개발이 끝납니다.

사용법



install



mask는 Rust로 작성되었으므로 Rust 빌드 도구 및 패키지 관리자 cargo에서 설치합니다.
cargo install mask

물론 github 릴리스에서 다운로드하여 PATH를 통해 사용할 수 있습니다.

update 할 때는, 자신은 신경질이 아니므로, 삭감과 아래의 커멘드로 최신판을 인스톨 해 버립니다.
cargo install mask --force

global maskfile.md



이 예와 같이
~/dev/maskfile.md

같은 것을 두고
mask --maskfile ~/dev/maskfile.md 

alias로 설정하면 각 프로젝트의 디렉토리로 이동하지 않고 자신만의 작업을 수행할 수 있습니다.

커멘드 인수나 플래그도 준비되어 있으므로, 각 툴의 커멘드 라인 옵션에 아울러, 자신만의 커멘드를 만들 수 있습니다

사용해 보았습니다.



만약 프로젝트 부하에 maskfile.md 를 두고 싶지만, git로 관리되고 싶지 않은 경우는, global의 gitignore로 maskfile.md를 제외하도록 해 두면 좋을까 생각합니다.

실태는 단순한 markdown 파일이므로, 멱등이 없는 한, 다른 것에 영향을 주는 것은 없다고는 생각합니다.

예를 들어, 프로젝트는 Scala의 sbt, Node의 yarn, GCP의 gcloud와 같은 여러 작업 러너와 CLI를 잘 처리해야하기 때문에 mask를 도입했습니다.

한 태스크에서 다른 태스크를 호출하는 것도 가능하기 때문에 태스크 종속성을 쉽게 이해할 수 있습니다.

결론



어땠습니까?
태스크의 정의를 markdown으로 기재하는 것으로, 문서로서도 알기 쉬워지고, markdown을 익숙한 사람이라면, 도입도 간단하다고 생각합니다.

약간의 shell script나 Makefile을 쓸까라고 생각했을 때에 기억해 주시면 다행입니다.

좋은 웹페이지 즐겨찾기