feat: Adding mount section
This commit is contained in:
@@ -13,6 +13,63 @@ import (
|
||||
)
|
||||
|
||||
func main() {
|
||||
// check mount point
|
||||
cmd := exec.Command("bash", "-c", `mountpoint -q /home/kar/Music/`)
|
||||
log.Println("Verificando punto de montaje")
|
||||
err := cmd.Run()
|
||||
if err != nil {
|
||||
addr := checkConn()
|
||||
mountDir(addr)
|
||||
openConn()
|
||||
}
|
||||
log.Println("Carpeta montada")
|
||||
openConn()
|
||||
}
|
||||
|
||||
|
||||
func restartService() {
|
||||
log.Println("Reiniciando servicio mpd")
|
||||
cmd := exec.Command("bash", "-c", fmt.Sprintf(`systemctl --user -M [email protected] restart --user mpd`))
|
||||
err := cmd.Run()
|
||||
if err != nil {
|
||||
log.Println("Error al reiniciar servicio mpd", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
log.Println("Recargando base de datos de mpd")
|
||||
cmd = exec.Command("bash", "-c", fmt.Sprintf(`runuser -u kar -- mpc update`))
|
||||
err = cmd.Run()
|
||||
if err != nil {
|
||||
log.Println("Error al actualizar base de datos de mpd")
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
|
||||
func mountDir(addr string) {
|
||||
cmd := exec.Command("bash", "-c", fmt.Sprintf(`mount %s:/server/music /home/kar/Music`, addr))
|
||||
log.Printf("Montando carpeta desde el host %s\n", addr)
|
||||
_, err := cmd.CombinedOutput()
|
||||
if err != nil {
|
||||
log.Println("Error al montar carpeta")
|
||||
os.Exit(1)
|
||||
}
|
||||
restartService()
|
||||
}
|
||||
|
||||
func checkConn() string {
|
||||
_, err := net.Dial("tcp", "192.168.2.11:2049")
|
||||
if err != nil {
|
||||
log.Println("Error al conectar al host 192.168.2.11")
|
||||
_, err := net.Dial("tcp", "192.168.1.64:2049")
|
||||
if err != nil {
|
||||
log.Println("Error al conectar al host 192.168.1.64", err)
|
||||
}
|
||||
return "192.168.1.64"
|
||||
}
|
||||
return "192.168.2.11"
|
||||
}
|
||||
|
||||
|
||||
func openConn() {
|
||||
err := godotenv.Load()
|
||||
if err != nil {
|
||||
log.Println("Error al leer .env", err)
|
||||
@@ -44,13 +101,13 @@ func menuController(conn net.Conn) {
|
||||
comandoString := strings.TrimSpace(string(comandoRaw[:n]))
|
||||
switch comandoString {
|
||||
case "play":
|
||||
out = playSong(conn)
|
||||
out = playSong()
|
||||
case "pause":
|
||||
out = pauseSong(conn)
|
||||
out = pauseSong()
|
||||
case "info":
|
||||
out = infoSong(conn)
|
||||
out = infoSong()
|
||||
case "next":
|
||||
out = nextSong(conn)
|
||||
out = nextSong()
|
||||
case "addsong":
|
||||
addSong(conn)
|
||||
}
|
||||
@@ -62,7 +119,7 @@ func menuController(conn net.Conn) {
|
||||
}
|
||||
}
|
||||
|
||||
func playSong(conn net.Conn) string {
|
||||
func playSong() string {
|
||||
cmd := exec.Command("mpc", "play")
|
||||
output, err := cmd.CombinedOutput()
|
||||
if err != nil {
|
||||
@@ -71,7 +128,7 @@ func playSong(conn net.Conn) string {
|
||||
return string(output)
|
||||
}
|
||||
|
||||
func pauseSong(conn net.Conn) string {
|
||||
func pauseSong() string {
|
||||
cmd := exec.Command("mpc", "pause")
|
||||
output, err := cmd.CombinedOutput()
|
||||
if err != nil {
|
||||
@@ -80,7 +137,7 @@ func pauseSong(conn net.Conn) string {
|
||||
return string(output)
|
||||
}
|
||||
|
||||
func infoSong(conn net.Conn) string {
|
||||
func infoSong() string {
|
||||
cmd := exec.Command("mpc")
|
||||
output, err := cmd.CombinedOutput()
|
||||
if err != nil {
|
||||
@@ -89,7 +146,7 @@ func infoSong(conn net.Conn) string {
|
||||
return string(output)
|
||||
}
|
||||
|
||||
func nextSong(conn net.Conn) string {
|
||||
func nextSong() string {
|
||||
cmd := exec.Command("mpc", "next")
|
||||
output, err := cmd.CombinedOutput()
|
||||
if err != nil {
|
||||
@@ -111,11 +168,16 @@ func addSong(conn net.Conn) {
|
||||
if err != nil {
|
||||
log.Println("Error al recibir cancion", err)
|
||||
}
|
||||
fmt.Printf("%s, agregado por %s", strings.TrimSpace(string(bufSong[:n])), conn.RemoteAddr())
|
||||
cmdmpc := exec.Command("bash", "-c", fmt.Sprintf("mpc insert %q && mpc next >/dev/null && mpc play", strings.TrimSpace(string(bufSong[:n]))))
|
||||
_, err = cmdmpc.CombinedOutput()
|
||||
if err != nil {
|
||||
log.Println("Error al reproducir cancion", err)
|
||||
fmt.Printf("%s, agregado por %s\n", strings.TrimSpace(string(bufSong[:n])), conn.RemoteAddr())
|
||||
cmdmpc := exec.Command("bash", "-c", fmt.Sprintf(`runuser -u kar -- mpc insert %q && mpc next`, strings.TrimSpace(string(bufSong[:n]))))
|
||||
out, err := cmdmpc.CombinedOutput()
|
||||
if strings.TrimSpace(string(out)) == "MPD error: Not playing" {
|
||||
log.Println("Cancion agregada")
|
||||
} else {
|
||||
if err != nil {
|
||||
log.Println("Error al agregar cancion", err)
|
||||
}
|
||||
}
|
||||
_ = playSong()
|
||||
conn.Close()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user