init conf
This commit is contained in:
parent
e170e5a62e
commit
1e69f37777
@ -1,9 +1,76 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"flag"
|
||||||
"fmt"
|
"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() {
|
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
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user