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 (
"sync"
"time"
"git.autistici.org/ale/autoradio/util"
"git.autistici.org/ale/autoradio"
pb "git.autistici.org/ale/autoradio/proto"
"git.autistici.org/ale/autoradio/util"
)
var (
......@@ -23,27 +23,9 @@ var (
// Timeout for all HTTP requests to the local Icecast.
icecastHTTPTimeout = 5 * time.Second
icecastReloadCmd = flag.String("icecast-reload-command", "", "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"
icecastReloadCmd = flag.String("icecast-reload-command", "pkill -HUP icecast2", "Command to reload the icecast2 daemon")
)
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.
//
// 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) {
}
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))
req, err := http.NewRequest("GET", fmt.Sprintf("http://localhost:%d/admin/killsource?%s", port, v.Encode()), 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