init conf
This commit is contained in:
parent
e170e5a62e
commit
1e69f37777
|
@ -1,9 +1,76 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"os/user"
|
||||
"path/filepath"
|
||||
)
|
||||
|
||||
const help = `unnamed-project: WIP
|
||||
|
||||
Options:
|
||||
-n node identifier (default: your system username)
|
||||
-p path to share files (default: current working directory)
|
||||
-w port for web server (default: 1312)
|
||||
-s port for file server (default: 5555)
|
||||
-d debug logging
|
||||
-h output help
|
||||
`
|
||||
|
||||
var nodeIDFlag string
|
||||
var pathFlag string
|
||||
var webPortFlag int
|
||||
var filePortFlag int
|
||||
var debugFlag bool
|
||||
var helpFlag bool
|
||||
|
||||
func main() {
|
||||
fmt.Println("Hello, World!")
|
||||
systemUser, err := user.Current()
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
cwdAbsPath, err := filepath.Abs(".")
|
||||
if err != nil {
|
||||
log.Fatalln(err)
|
||||
}
|
||||
|
||||
handleCliFlags(systemUser.Name, cwdAbsPath)
|
||||
|
||||
if helpFlag {
|
||||
fmt.Printf(help)
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
conf := &config{
|
||||
nodeID: nodeIDFlag,
|
||||
webPort: webPortFlag,
|
||||
filePort: filePortFlag,
|
||||
sharePath: pathFlag,
|
||||
debug: debugFlag,
|
||||
}
|
||||
|
||||
fmt.Println(conf)
|
||||
|
||||
}
|
||||
|
||||
func handleCliFlags(username, sharePath string) {
|
||||
flag.StringVar(&nodeIDFlag, "n", username, "node identifier")
|
||||
flag.StringVar(&pathFlag, "p", sharePath, "path to share files")
|
||||
flag.IntVar(&webPortFlag, "w", 1312, "port for web server")
|
||||
flag.IntVar(&filePortFlag, "s", 5555, "port for file server")
|
||||
flag.BoolVar(&debugFlag, "d", false, "debug logging")
|
||||
flag.BoolVar(&helpFlag, "h", false, "output help")
|
||||
flag.Parse()
|
||||
}
|
||||
|
||||
type config struct {
|
||||
nodeID string
|
||||
webPort int
|
||||
filePort int
|
||||
sharePath string
|
||||
debug bool
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue