2016-08-20 2 views
0

main 함수를 갖고 있고 플래그 패키지를 사용하여 인수를 지정하는 패키지를 만들고 싶습니다.golang 패키지도 cli의 독립 실행 형이어야합니다.

또한이 패키지를 다른 패키지에 포함 할 수 있고 cli에 args를 전달하는 것과 유사한 구문으로 메소드를 호출 할 수 있기를 원합니다. 내가 포함 된 패키지가 주요 기능을 부여 할 몇 가지 이유

err := myPackage.setFlags(args ...string) 
out, err := myPackage.exec() 

같은 아마 뭔가 : 그것은 독립 실행 파일로 패키지를 배포 할 날 수 있습니다

  • . 내 사용자는 전체 시스템

  • 그것은 내가 별도의 모든 것을 유지 및 OS \ 간부를 사용해야

설명서 문제 해결을 쉽게 만들 수있는 필요하지 않을 수도?

각 패키지에 대해 독립 실행 형 래퍼 (어쩌면 생성 할 수 있습니까?)를 만들고 setFlags 작업을 수행하지 않고 전체 시스템에서 내 보낸 함수를 직접 호출해야합니까?

내가 수행 할 수있는 좋은 디자인 패턴이 있습니까?

나는 반 패턴을 고집하고 있습니까?

답변

1

일반적인 패턴은 실행 파일이있는 프로젝트에 cmd pkg가 있어야합니다. 이

cmd/ 
    foo/main.go 
pkg/ 
    foo/foo.go 

cmd/foo 수입 pkg/foo 같은

뭔가 및 명령 행 플래그를 처리합니다. pkg/foo은 모든 라이브러리 코드가 포함 된 패키지입니다. 이 패턴은 다른 사람이 pkg/foo을 가져오고 cmd/foo을 실행하면 foo이라는 실행 파일을 제공합니다.