first commit
This commit is contained in:
67
wifinetworks/wifinetworks.go
Normal file
67
wifinetworks/wifinetworks.go
Normal file
@@ -0,0 +1,67 @@
|
||||
package wifinetworks
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
)
|
||||
|
||||
type Wifinetwork struct {
|
||||
SSID string `json:"SSID"`
|
||||
PSK string `json:"PSK"`
|
||||
Priority bool `json:"Priority"`
|
||||
}
|
||||
|
||||
type Wifinetworks struct {
|
||||
Networks []Wifinetwork
|
||||
}
|
||||
|
||||
func (w *Wifinetworks) Load() {
|
||||
s, err := ioutil.ReadFile("networks.json")
|
||||
if err != nil {
|
||||
log.Println("No saved networks")
|
||||
return
|
||||
}
|
||||
err = json.Unmarshal(s, &w.Networks)
|
||||
if err != nil {
|
||||
log.Println("Error decofing known networks: ", err)
|
||||
return
|
||||
}
|
||||
log.Printf("Loaded %d networks from config\n", len(w.Networks))
|
||||
}
|
||||
func (w *Wifinetworks) Save() {
|
||||
j, err := json.Marshal(w.Networks)
|
||||
if err != nil {
|
||||
log.Fatal("JSON Marshal: ", err)
|
||||
}
|
||||
err = ioutil.WriteFile("networks.json", j, 0700)
|
||||
|
||||
}
|
||||
|
||||
func (w *Wifinetworks) RemoveSSID(s string) {
|
||||
var n Wifinetworks
|
||||
for i := range w.Networks {
|
||||
if w.Networks[i].SSID != s {
|
||||
n.Networks = append(n.Networks, w.Networks[i])
|
||||
}
|
||||
}
|
||||
w.Networks = n.Networks
|
||||
w.Save()
|
||||
}
|
||||
|
||||
func (w *Wifinetworks) Find(ssid string) (Wifinetwork, error) {
|
||||
for n := range w.Networks {
|
||||
if w.Networks[n].SSID == ssid {
|
||||
return w.Networks[n], nil
|
||||
}
|
||||
}
|
||||
var bleh Wifinetwork
|
||||
return bleh, errors.New("Not found")
|
||||
}
|
||||
|
||||
func (w *Wifinetworks) Add(n Wifinetwork) {
|
||||
w.RemoveSSID(n.SSID)
|
||||
w.Networks = append(w.Networks, n)
|
||||
w.Save()
|
||||
}
|
Reference in New Issue
Block a user