2013-10-14 2 views
3

문자열 목록을 패브릭 작업에 인수로 전달하고 싶습니다. 예를 들어, 다음 fabfile을 위해 :하고 목록 인쇄를 가지고 : "[톰, 딕, 해리] 팹 테스트"패브릭 작업에 문자열 목록 전달

def test(names): 
    print names 

싶습니다 통과합니다.

기본적으로 패브릭에서 수행 할 수 있습니까, 아니면 문자열을 전달하고 직접 나눠야합니까?

감사합니다. 그런 다음

@task 
def mytask(*args): 
    print args 

이런 식 전화 :

답변

8

한 가지 방법은 위치 인수 사용하는 것입니다

$ fab mytask:foo,bar,baz 
('foo', 'bar', 'baz') 

참고가 튜플이 아닌 목록으로 인수를 얻을 수 있지만, 이것은해야 큰 차이를 만들지 마라.

이 방법이 효과가없고 더 멋진 것이 필요한 경우 직접 인수를 분석해야합니다.

참조 :

def test(names): 
    if isinstance(names, basestring): 
     names = names.split(";") 
    for name in names: 
     # do something for every name... 

그 방법, 프로그램, 난 아직도의 목록 또는 튜플을 전달할 수 있습니다 http://docs.fabfile.org/en/1.8/usage/fab.html#per-task-arguments

4

원단, 그래서 여기에 항상 개별 인수에리스트 나 튜플을 확장하는 것 같다 내가 할거야 이 함수의 이름을 테스트 할 목적으로 명령 줄에서 세미콜론으로 구분 된 문자열로 지정할 수 있습니다.

fab -f fabfile.py test:'tom;dick;harry' 
관련 문제