Search code examples
gogo-gingo-cobra

Cobra CMD does not executes completly


I have the following code, is really simple. The point is that the code after the first fmt.Println is never executed. Any idea why?

The code creates a random string, and then creates a Gin Router. The code that executes the router is never being runned.

func send(cmd *cobra.Command, args []string) {

    randomString = createRandomString()
    fmt.Println("Code for share: " + randomString)
    var files filesToSend = args

    //Create http to listen to port
    g := gin.Default()
    g.GET("/", files.sendHttpHandler)
    g.Run()
}

Solution

  • Problem is the import path in main.go vs the module name in go.mod. The capitalization is different:

    package main
    
    import "github.com/mariogmarq/goshare/cmd"
    

    go.mod:

    module github.com/mariogmarq/GoShare
    

    It is best practice to use all lowercase for package (and module) names. From the Go Blog:

    Good package names are short and clear. They are lower case, with no under_scores or mixedCaps.