feat: Adding mount section

This commit is contained in:
kar
2026-01-06 01:56:42 -06:00
parent e7aaa9b6a2
commit cd2374c079
+74 -12
View File
@@ -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()
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 reproducir cancion", err)
log.Println("Error al agregar cancion", err)
}
}
_ = playSong()
conn.Close()
}