Christopher Ramey
3 years ago
4 changed files with 90 additions and 4 deletions
-
8api/command.go
-
44client/client.go
-
29main.go
-
13server/http.go
@ -0,0 +1,44 @@ |
|||||
|
package client |
||||
|
|
||||
|
import ( |
||||
|
"git.binarythought.com/cdramey/alrm/api" |
||||
|
"git.binarythought.com/cdramey/alrm/config" |
||||
|
"net/http" |
||||
|
"net/url" |
||||
|
) |
||||
|
|
||||
|
func Shutdown(cfg *config.Config) error { |
||||
|
return doCommand(cfg, "shutdown") |
||||
|
} |
||||
|
|
||||
|
func Restart(cfg *config.Config) error { |
||||
|
return doCommand(cfg, "restart") |
||||
|
} |
||||
|
|
||||
|
func doCommand(cfg *config.Config, cm string) error { |
||||
|
aurl, err := url.Parse("http://" + cfg.Listen + "/api") |
||||
|
if err != nil { |
||||
|
return err |
||||
|
} |
||||
|
|
||||
|
cmd := api.NewCommand(cm) |
||||
|
err = cmd.Sign(cfg.APIKey) |
||||
|
if err != nil { |
||||
|
return err |
||||
|
} |
||||
|
cjson, err := cmd.JSON() |
||||
|
if err != nil { |
||||
|
return err |
||||
|
} |
||||
|
|
||||
|
params := url.Values{} |
||||
|
params.Add("cmd", string(cjson)) |
||||
|
|
||||
|
resp, err := http.PostForm(aurl.String(), params) |
||||
|
if err != nil { |
||||
|
return err |
||||
|
} |
||||
|
defer resp.Body.Close() |
||||
|
|
||||
|
return nil |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue