f-8: code: move flags from pkg to binari #8

Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
This commit is contained in:
GnomeZworc 2025-12-30 21:27:35 +01:00
commit fc624e7e96
Signed by: nicolas.boufideline
GPG key ID: 4406BBBF8845D632
3 changed files with 34 additions and 20 deletions

View file

@ -1,9 +1,30 @@
package main
import (
"flag"
"log"
"git.g3e.fr/syonad/two/internal/metadata"
)
var (
iface = flag.String("interface", "0.0.0.0", "Interface IP à écouter")
port = flag.Int("port", 8080, "Port à utiliser")
file = flag.String("file", "", "Fichier JSON contenant les données NoCloud")
netns_name = flag.String("netns", "", "Network namespace à utiliser")
)
func main() {
metadata.StartServer()
flag.Parse()
if *file == "" {
log.Fatal("Vous devez spécifier un fichier via --file")
}
metadata.StartServer(metadata.Config{
Netns: *netns_name,
File: *file,
Iface: *iface,
Port: *port,
})
}

View file

@ -2,7 +2,6 @@ package metadata
import (
"encoding/json"
"flag"
"fmt"
"io/ioutil"
"log"
@ -15,13 +14,6 @@ import (
var data NoCloudData
var (
iface = flag.String("interface", "0.0.0.0", "Interface IP à écouter")
port = flag.Int("port", 8080, "Port à utiliser")
file = flag.String("file", "", "Fichier JSON contenant les données NoCloud")
netns_name = flag.String("netns", "", "Network namespace à utiliser")
)
func getIP(r *http.Request) string {
ip, _, err := net.SplitHostPort(r.RemoteAddr)
if err != nil {
@ -54,20 +46,14 @@ func rootHandler(w http.ResponseWriter, r *http.Request) {
}
}
func StartServer() {
flag.Parse()
if *netns_name != "" {
if err := netns.Enter(*netns_name); err != nil {
func StartServer(config Config) {
if config.Netns != "" {
if err := netns.Enter(config.Netns); err != nil {
log.Fatalf("Impossible d'entrer dans le netns: %v", err)
}
}
if *file == "" {
log.Fatal("Vous devez spécifier un fichier via --file")
}
raw, err := ioutil.ReadFile(*file)
raw, err := ioutil.ReadFile(config.File)
if err != nil {
log.Fatalf("Erreur de lecture du fichier: %v", err)
}
@ -78,7 +64,7 @@ func StartServer() {
http.HandleFunc("/", rootHandler)
address := fmt.Sprintf("%s:%d", *iface, *port)
address := fmt.Sprintf("%s:%d", config.Iface, config.Port)
log.Printf("Serveur NoCloud démarré sur http://%s/", address)
log.Fatal(http.ListenAndServe(address, nil))
}

View file

@ -6,3 +6,10 @@ type NoCloudData struct {
NetworkConfig string `json:"network-config"`
VendorData string `json:"vendor-data"`
}
type Config struct {
Netns string
File string
Iface string
Port int
}