2P by xguru 7일전 | ★ favorite | 댓글 1개
  • ./test -vo out.png --size 256 input.txt 같은 GNU 표준을 따르는 명령줄 인자 파서
  • -h--help로 내장된 도움말 메시지 제공
  • 태그 설정으로 구조체 필드에 인자 매핑
  • 배열, 슬라이스, 구조체 같은 복합 타입 필드 지원
  • 중첩된 서브 명령 지원

GNU 명령줄 인자 규칙

  • 하이픈(-)으로 시작하는 항목은 옵션임
  • 여러 옵션은 결합 가능 (-abc-a -b -c와 동일함)
  • 긴 옵션은 두 개의 하이픈(--)으로 시작 (--abc)
  • 옵션 이름은 영숫자만 가능
  • 옵션 값은 공백, 등호(=), 또는 연속된 값으로 설정 가능 (-a1, -a=1, -a 1 모두 동일)
  • 옵션과 비옵션 값은 섞여도 문제 없음
  • 옵션은 어떤 순서로든 나타날 수 있음.
  • --는 옵션 종료 의미로 이후 인자는 모두 비옵션으로 처리
  • 단일 -는 일반적으로 표준 입력 또는 출력을 의미
  • 동일 옵션이 여러 번 지정되면 마지막 값이 적용됨
  • 옵션은 여러 개의 값을 가질 수 있음 (-a 1 2 3[1,2,3]으로 처리됨)

추가 기능

  • 옵션 카운팅: -vvvv = 3으로 설정됨
  • 옵션 추가: -v 1 -v 2v = []int{1, 2}로 설정됨
  • 불리언 옵션: --var는 활성화하고 --no-var는 비활성화함
  • 옵션은 구조체, 슬라이스, 맵과 같은 복합 타입이 될 수 있음
  • 옵션은 소스(예: SQL)에서 목록/딕셔너리 값을 가져올 수 있음

cobra를 사용했었는데, 그에 비해 argp는 flag에 대해 여러가지 옵션을 주네요 ㅎㅎ