2017-05-14 3 views
1

내 프로그램이 인수가 유효하도록 세트에서 적어도 하나의 인수를 요구하게하고 싶습니다.Docopt에서 하나 이상의 집합을 강제로 만드는 방법?

예를 들어, 3 개의 스위치 (-a, -b 및 -c)와 2 개의 필수 인수가 있다고 가정 해 봅시다.

유효합니다. myapp -a FOO BAR myapp -a -b FOO BAR myapp -a -c FOO BAR

이되지 않을 것 :

myapp FOO BAR

답변

0
당신은 옵션이 한 번 이상 나타나야한다는 것은 생략 ...을 사용할 수

:

여기
Usage: 
    myapp (-a|-b|-c)... <FOO> <BAR> 

우리가 언급 그 중 하나 -a-b 또는 -c이 한 번 이상 표시되어야합니다.

는 수락 :

myapp -a FOO BAR 
myapp -a -b FOO BAR 
myapp -a -c FOO BAR 

는 거부 :

myapp FOO BAR 
+0

은이 플래그는하지만 여러 번 제공 할 수 있도록하지 않을까요? 즉'myapp -a -a -b'입니다. 그것이 문제가 아니라 단지 관찰 일뿐입니다. – Jake

+0

네, 그렇습니다. 이를 피하려면, 모든 조합을 철자해야하고 명령 행 스펙을 사용자에게 덜 친숙하게 만듭니다. 따라서 일종의 절충안입니다. –

+0

나는 그것으로 살 수있다. – Jake