SimpleFileServer/cli/CmdStart.go
2018-09-14 08:59:16 +02:00

32 lines
1.1 KiB
Go

package cli
import (
"fileserver/version"
"log"
"net/http"
"github.com/spf13/cobra"
)
func cmdStart() (cmd *cobra.Command) {
cmd = &cobra.Command{
Use: "start",
Short: "Starts the Simple File Server with the given configuration.",
Args: cobra.NoArgs,
Run: func(cmd *cobra.Command, args []string) {
// Run the server
log.Printf("Simple File Server v%s", version.VERSION)
log.Printf("Compiled with Go %s", version.GetGoVersion())
log.Printf("Configuration: root directory='%s', bind to='%s'", configData.RootDirectory, configData.BindHostAndPort)
log.Println("Start the file server now...")
http.Handle("/", http.FileServer(http.Dir(configData.RootDirectory)))
http.ListenAndServe(configData.BindHostAndPort, nil)
},
}
cmd.Flags().StringVarP(&configData.RootDirectory, "rootDirectory", "d", ".", "The root directory. All files in this directory and its sub-directories get published.")
cmd.Flags().StringVarP(&configData.BindHostAndPort, "bindHostPort", "b", "0.0.0.0:8080", "The address or hostname and port where to bind the file server.")
return
}