|
@@ -28,36 +28,26 @@ type Network struct {
|
|
Peers []Peer `json:"peers"`
|
|
Peers []Peer `json:"peers"`
|
|
}
|
|
}
|
|
|
|
|
|
-func List() error {
|
|
|
|
- networks, err := ncutils.GetSystemNetworks()
|
|
|
|
- if err != nil {
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+func List(network string) error {
|
|
nets := []Network{}
|
|
nets := []Network{}
|
|
- for _, network := range networks {
|
|
|
|
- cfg, err := config.ReadConfig(network)
|
|
|
|
|
|
+ var err error
|
|
|
|
+ var networks []string
|
|
|
|
+ if network == "all" {
|
|
|
|
+ networks, err = ncutils.GetSystemNetworks()
|
|
if err != nil {
|
|
if err != nil {
|
|
- ncutils.PrintLog(network+": Could not retrieve network configuration.", 1)
|
|
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
- peers, err := getPeers(network)
|
|
|
|
|
|
+ } else {
|
|
|
|
+ networks = append(networks, network)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for _, network := range networks {
|
|
|
|
+ net, err := getNetwork(network)
|
|
if err != nil {
|
|
if err != nil {
|
|
ncutils.PrintLog(network+": Could not retrieve network configuration.", 1)
|
|
ncutils.PrintLog(network+": Could not retrieve network configuration.", 1)
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
-
|
|
|
|
- nets = append(nets, Network{
|
|
|
|
- Name: network,
|
|
|
|
- Peers: peers,
|
|
|
|
- CurrentNode: Peer{
|
|
|
|
- Name: cfg.Node.Name,
|
|
|
|
- Interface: cfg.Node.Interface,
|
|
|
|
- PrivateIPv4: cfg.Node.Address,
|
|
|
|
- PrivateIPv6: cfg.Node.Address6,
|
|
|
|
- PublicEndpoint: cfg.Node.Endpoint,
|
|
|
|
- },
|
|
|
|
- })
|
|
|
|
|
|
+ nets = append(nets, net)
|
|
}
|
|
}
|
|
|
|
|
|
jsoncfg, _ := json.Marshal(struct {
|
|
jsoncfg, _ := json.Marshal(struct {
|
|
@@ -68,6 +58,28 @@ func List() error {
|
|
return nil
|
|
return nil
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+func getNetwork(network string) (Network, error) {
|
|
|
|
+ cfg, err := config.ReadConfig(network)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return Network{}, fmt.Errorf("reading configuration for network %v: %w", network, err)
|
|
|
|
+ }
|
|
|
|
+ peers, err := getPeers(network)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return Network{}, fmt.Errorf("listing peers for network %v: %w", network, err)
|
|
|
|
+ }
|
|
|
|
+ return Network{
|
|
|
|
+ Name: network,
|
|
|
|
+ Peers: peers,
|
|
|
|
+ CurrentNode: Peer{
|
|
|
|
+ Name: cfg.Node.Name,
|
|
|
|
+ Interface: cfg.Node.Interface,
|
|
|
|
+ PrivateIPv4: cfg.Node.Address,
|
|
|
|
+ PrivateIPv6: cfg.Node.Address6,
|
|
|
|
+ PublicEndpoint: cfg.Node.Endpoint,
|
|
|
|
+ },
|
|
|
|
+ }, nil
|
|
|
|
+}
|
|
|
|
+
|
|
func getPeers(network string) ([]Peer, error) {
|
|
func getPeers(network string) ([]Peer, error) {
|
|
cfg, err := config.ReadConfig(network)
|
|
cfg, err := config.ReadConfig(network)
|
|
if err != nil {
|
|
if err != nil {
|