missed files
This commit is contained in:
@ -1 +1,56 @@
|
||||
package server
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"os/exec"
|
||||
)
|
||||
|
||||
type Handler struct{}
|
||||
|
||||
func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
switch r.Method {
|
||||
case http.MethodGet:
|
||||
toggle := r.URL.Query().Get("toggle")
|
||||
switch toggle {
|
||||
case "on":
|
||||
if !h.WifiEnabled(w, r) {
|
||||
if e := exec.Command("nmcli", "radio", "wifi", "on").Run(); e != nil {
|
||||
http.Error(w, e.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
if e := exec.Command("nmcli", "connection", "up", "Hotspot", "ifname", "wlp2s0").Run(); e != nil {
|
||||
http.Error(w, e.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
case "off":
|
||||
if h.WifiEnabled(w, r) {
|
||||
if e := exec.Command("nmcli", "connection", "down", "Hotspot").Run(); e != nil {
|
||||
http.Error(w, e.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
if e := exec.Command("nmcli", "radio", "wifi", "off").Run(); e != nil {
|
||||
http.Error(w, e.Error(), http.StatusInternalServerError)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
default:
|
||||
http.Error(w, http.StatusText(http.StatusMethodNotAllowed), http.StatusMethodNotAllowed)
|
||||
}
|
||||
}
|
||||
|
||||
func (h *Handler) WifiEnabled(w http.ResponseWriter, r *http.Request) bool {
|
||||
status, e := exec.Command("nmcli", "radio", "wifi").Output()
|
||||
if e != nil {
|
||||
http.Error(w, e.Error(), http.StatusInternalServerError)
|
||||
panic(e)
|
||||
}
|
||||
if string(status) == "enabled" {
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user