Commit 1b202d9d authored by ale's avatar ale

Use pkill to reload Icecast by default

At least it doesn't require sudo like using systemctl.
parent 2974da92
...@@ -13,9 +13,9 @@ import ( ...@@ -13,9 +13,9 @@ import (
"sync" "sync"
"time" "time"
"git.autistici.org/ale/autoradio/util"
"git.autistici.org/ale/autoradio" "git.autistici.org/ale/autoradio"
pb "git.autistici.org/ale/autoradio/proto" pb "git.autistici.org/ale/autoradio/proto"
"git.autistici.org/ale/autoradio/util"
) )
var ( var (
...@@ -23,27 +23,9 @@ var ( ...@@ -23,27 +23,9 @@ var (
// Timeout for all HTTP requests to the local Icecast. // Timeout for all HTTP requests to the local Icecast.
icecastHTTPTimeout = 5 * time.Second icecastHTTPTimeout = 5 * time.Second
icecastReloadCmd = flag.String("icecast-reload-command", "", "Command to reload the icecast2 daemon") icecastReloadCmd = flag.String("icecast-reload-command", "pkill -HUP icecast2", "Command to reload the icecast2 daemon")
)
const (
systemdReloadCmd = "sudo systemctl reload icecast2.service || sudo systemctl restart icecast2.service"
debianReloadCmd = "/usr/sbin/service icecast2 reload || /usr/sbin/service icecast2 restart"
genericReloadCmd = "pkill -HUP icecast2"
) )
func init() {
// Try to set a system-specific sane default for
// --icecast-reload-command.
if _, err := os.Stat("/bin/systemctl"); err == nil {
*icecastReloadCmd = systemdReloadCmd
} else if _, err := os.Stat("/usr/sbin/service"); err == nil {
*icecastReloadCmd = debianReloadCmd
} else {
*icecastReloadCmd = genericReloadCmd
}
}
// IcecastController manages a local Icecast daemon. // IcecastController manages a local Icecast daemon.
// //
// Managing the local Icecast instance is a less simple task than it // Managing the local Icecast instance is a less simple task than it
...@@ -145,7 +127,7 @@ func (c *Controller) killSources(ctx context.Context, mounts []*pb.Mount) { ...@@ -145,7 +127,7 @@ func (c *Controller) killSources(ctx context.Context, mounts []*pb.Mount) {
} }
func killSource(ctx context.Context, m *pb.Mount, port int, pw string) error { func killSource(ctx context.Context, m *pb.Mount, port int, pw string) error {
var v url.Values v := make(url.Values)
v.Set("mount", autoradio.MountPathToIcecastPath(m.Path)) v.Set("mount", autoradio.MountPathToIcecastPath(m.Path))
req, err := http.NewRequest("GET", fmt.Sprintf("http://localhost:%d/admin/killsource?%s", port, v.Encode()), nil) req, err := http.NewRequest("GET", fmt.Sprintf("http://localhost:%d/admin/killsource?%s", port, v.Encode()), nil)
if err != nil { if err != nil {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment