package main import ( "fmt" "net/http" "os" "xtcfs/config" "xtcfs/handler" "github.com/urfave/cli/v2" ) var ( port string ) // 初始化配置 func initConfig(c *cli.Context) error { return config.G.SetConf(port) } // 接收端 管理上传 func receiveClient() error { //接收者角色 // 注释上面的局域网广播 fmt.Println("xtfs run as receive role...") // 显示状态等 // http.HandleFunc("/", handler.ReceiveStatus) http.HandleFunc("/", handler.ReceiveHandler) // http.Handle("/static/", http.StripPrefix("/static/", // http.FileServer(http.FS(web.StaticFs)))) fmt.Println("Waiting for receive...") return http.ListenAndServe(config.G.WildcardAddress, nil) } // 入口函数 /** * 保留接收的功能,用来做接收端 **/ func main() { app := &cli.App{ Name: "xtfs", Usage: "simple file transfer tool", UsageText: "xtfs [global options] [filename|foldername]", Description: "xtfs is a simple command-line tool for fast local file/folder sharing", Flags: []cli.Flag{ &cli.StringFlag{ Name: "port", Value: "9099", Usage: "server port", Aliases: []string{"p"}, Destination: &port, }, &cli.BoolFlag{ Name: "version", Aliases: []string{"v"}, Usage: "print the version", }, }, Action: func(c *cli.Context) error { // if c.NArg() > 0 { // currentPath := filepath.ToSlash(c.Args().Get(0)) // config.G.FilePath = currentPath // return sendClient() // } return receiveClient() }, Before: initConfig, } err := app.Run(os.Args) if err != nil { fmt.Println(err.Error()) } }