mirror of
https://github.com/anotherhadi/settuings.git
synced 2026-10-05 16:18:24 +02:00
@@ -0,0 +1,45 @@
|
||||
package network
|
||||
|
||||
// EthernetDevice is a wired network interface and its active profile, if any.
|
||||
type EthernetDevice struct {
|
||||
Device string
|
||||
Connection string
|
||||
State string
|
||||
IP4 string
|
||||
}
|
||||
|
||||
func (e EthernetDevice) Connected() bool {
|
||||
return e.State == "connected"
|
||||
}
|
||||
|
||||
// ListEthernet returns every ethernet device, with its private IPv4 address
|
||||
// filled in when connected.
|
||||
func ListEthernet() ([]EthernetDevice, error) {
|
||||
devices, err := ListDevices()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
eth := make([]EthernetDevice, 0)
|
||||
for _, d := range devices {
|
||||
if d.Type != "ethernet" {
|
||||
continue
|
||||
}
|
||||
e := EthernetDevice{
|
||||
Device: d.Name,
|
||||
Connection: d.Connection,
|
||||
State: d.State,
|
||||
}
|
||||
if e.Connected() {
|
||||
e.IP4, _ = DeviceIP4(d.Name)
|
||||
}
|
||||
eth = append(eth, e)
|
||||
}
|
||||
return eth, nil
|
||||
}
|
||||
|
||||
// EthernetDown deactivates an ethernet device.
|
||||
func EthernetDown(device string) error {
|
||||
_, err := run("device", "disconnect", device)
|
||||
return err
|
||||
}
|
||||
Reference in New Issue
Block a user