You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
1.6 KiB
77 lines
1.6 KiB
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())
|
|
}
|
|
}
|
|
|