¿Puedo tener una biblioteca y un binario con el mismo nombre?

Estoy construyendo una biblioteca, pero también quiero que sea utilizable como un binario independiente.

Por ejemplo, digamos que estoy construyendo una implementación de Tar. Tar se usa comúnmente como un comando, pero también se puede usar como una biblioteca. Intuitivamente, haría algo como esto:

src/
    tar/
        tar.go # belongs to package tar
        main.go # imports tar and provides a main function

Sin embargo, esto no parece funcionar. Desde eldocumentaciónParece que los "comandos" deberían tener un nombre separado de la biblioteca. Adaptando el ejemplo dado a este ejemplo, tengo la siguiente estructura de directorios:

src/
    tar/
        tar.go # belongs to package tar
    tarbin/
        main.go # imports tar and provides a main function

Sin embargo, esto crea un comando llamadotarbinnotar en$GOPATH/bin. La solución que he encontrado es hacergo build -o $GOPATH/bin/tar tar, pero tengo la sensación de que estoy haciendo algo horriblemente mal. ¿Hay alguna manera mejor?

Nota: Soy muy consciente de quetar está incluido en las librerías estándar, solo lo uso como ejemplo.

Respuestas a la pregunta(1)

Su respuesta a la pregunta