1
0

Removed code for liquidsoap.

This commit is contained in:
Alexander Andreev 2023-07-22 22:15:24 +04:00
parent 4512e6aa53
commit 38f04aa9f8
Signed by: Arav
GPG Key ID: D22A817D95815393
6 changed files with 3 additions and 82 deletions

View File

@ -5,7 +5,6 @@ import (
"dwelling-radio/internal/http"
"dwelling-radio/internal/radio"
"dwelling-radio/web"
"errors"
"flag"
"fmt"
"io/fs"
@ -20,7 +19,6 @@ import (
var (
configPath *string = flag.String("conf", "config.yaml", "path to configuration file")
noLiquidsoap *bool = flag.Bool("no-liquidsoap", false, "don't run liquidsoap")
showVersion *bool = flag.Bool("v", false, "show version")
)
@ -53,19 +51,6 @@ func main() {
}
defer playlistWatcher.Close()
if !*noLiquidsoap {
liquid, err := radio.NewLiquidsoap(config.Liquidsoap.ExecPath, config.Liquidsoap.ScriptPath)
if err != nil {
log.Fatalln("liquidsoap:", err)
}
defer func() {
if err := liquid.Stop(); err != nil && !errors.Is(err, radio.ErrLiquidsoapNotRunning) {
log.Println(err)
}
}()
}
hand := http.NewHandlers(config)
r := httpr.New()

View File

@ -8,8 +8,5 @@ icecast:
playlist_path: "playlist.log"
filelist_path: "/srv/radio/filelist.html"
most_listened_song_file_path: "/mnt/data/appdata/mostlistenedsong"
liquidsoap:
executable_path: "/opt/opam/4.14.0/bin/liquidsoap"
script_path: "/etc/dwelling/radio.liq"
# How much songs to list on a page
list_last_n_songs: 10

View File

@ -8,8 +8,5 @@ icecast:
playlist_path: "/var/log/icecast/playlist.log"
filelist_path: "/srv/radio/filelist.html"
most_listened_song_file_path: "/mnt/data/appdata/mostlistenedsong"
liquidsoap:
executable_path: "/opt/opam/4.14.0/bin/liquidsoap"
script_path: "/etc/dwelling/radio.liq"
# How much songs to list on a page
list_last_n_songs: 10

View File

@ -7,7 +7,7 @@ After=network-online.target icecast.service
Type=simple
Restart=on-failure
DynamicUser=yes
ExecStart=/usr/bin/dwelling-radio -no-liquidsoap -conf /etc/dwelling/radio.yaml
ExecStart=/usr/bin/dwelling-radio -conf /etc/dwelling/radio.yaml
ReadOnlyPaths=/

View File

@ -16,10 +16,6 @@ type Configuration struct {
} `yaml:"icecast"`
FilelistPath string `yaml:"filelist_path"`
MostListenedSongPath string `yaml:"most_listened_song_file_path"`
Liquidsoap struct {
ExecPath string `yaml:"executable_path"`
ScriptPath string `yaml:"script_path"`
} `yaml:"liquidsoap"`
ListLastNSongs int `yaml:"list_last_n_songs"`
}

View File

@ -1,54 +0,0 @@
package radio
import (
"os/exec"
"syscall"
"github.com/pkg/errors"
)
var ErrLiquidsoapNotRunning = errors.New("liquidsoap is not running")
type Liquidsoap struct {
command *exec.Cmd
}
func NewLiquidsoap(liquidsoapPath, scriptPath string) (*Liquidsoap, error) {
if _, err := exec.LookPath(liquidsoapPath); err != nil {
return nil, err
}
out, err := exec.Command(liquidsoapPath, "--verbose", "-c", scriptPath).CombinedOutput()
if err != nil {
return nil, errors.Wrap(err, "script cannot be validated")
}
if len(out) > 0 {
return nil, errors.Errorf("script validation failed: %s", string(out))
}
cmd := exec.Command(liquidsoapPath, scriptPath)
if err := cmd.Start(); err != nil {
return nil, err
}
return &Liquidsoap{
command: cmd}, nil
}
func (l *Liquidsoap) Stop() error {
if l.command.Process == nil && l.command.ProcessState != nil {
return ErrLiquidsoapNotRunning
}
if err := l.command.Process.Signal(syscall.SIGINT); err != nil {
return err
}
if err := l.command.Wait(); err != nil {
return err
}
return nil
}