feat: Adding mount section
This commit is contained in:
@@ -13,6 +13,63 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
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()
|
err := godotenv.Load()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println("Error al leer .env", err)
|
log.Println("Error al leer .env", err)
|
||||||
@@ -44,13 +101,13 @@ func menuController(conn net.Conn) {
|
|||||||
comandoString := strings.TrimSpace(string(comandoRaw[:n]))
|
comandoString := strings.TrimSpace(string(comandoRaw[:n]))
|
||||||
switch comandoString {
|
switch comandoString {
|
||||||
case "play":
|
case "play":
|
||||||
out = playSong(conn)
|
out = playSong()
|
||||||
case "pause":
|
case "pause":
|
||||||
out = pauseSong(conn)
|
out = pauseSong()
|
||||||
case "info":
|
case "info":
|
||||||
out = infoSong(conn)
|
out = infoSong()
|
||||||
case "next":
|
case "next":
|
||||||
out = nextSong(conn)
|
out = nextSong()
|
||||||
case "addsong":
|
case "addsong":
|
||||||
addSong(conn)
|
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")
|
cmd := exec.Command("mpc", "play")
|
||||||
output, err := cmd.CombinedOutput()
|
output, err := cmd.CombinedOutput()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -71,7 +128,7 @@ func playSong(conn net.Conn) string {
|
|||||||
return string(output)
|
return string(output)
|
||||||
}
|
}
|
||||||
|
|
||||||
func pauseSong(conn net.Conn) string {
|
func pauseSong() string {
|
||||||
cmd := exec.Command("mpc", "pause")
|
cmd := exec.Command("mpc", "pause")
|
||||||
output, err := cmd.CombinedOutput()
|
output, err := cmd.CombinedOutput()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -80,7 +137,7 @@ func pauseSong(conn net.Conn) string {
|
|||||||
return string(output)
|
return string(output)
|
||||||
}
|
}
|
||||||
|
|
||||||
func infoSong(conn net.Conn) string {
|
func infoSong() string {
|
||||||
cmd := exec.Command("mpc")
|
cmd := exec.Command("mpc")
|
||||||
output, err := cmd.CombinedOutput()
|
output, err := cmd.CombinedOutput()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -89,7 +146,7 @@ func infoSong(conn net.Conn) string {
|
|||||||
return string(output)
|
return string(output)
|
||||||
}
|
}
|
||||||
|
|
||||||
func nextSong(conn net.Conn) string {
|
func nextSong() string {
|
||||||
cmd := exec.Command("mpc", "next")
|
cmd := exec.Command("mpc", "next")
|
||||||
output, err := cmd.CombinedOutput()
|
output, err := cmd.CombinedOutput()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -111,11 +168,16 @@ func addSong(conn net.Conn) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println("Error al recibir cancion", err)
|
log.Println("Error al recibir cancion", err)
|
||||||
}
|
}
|
||||||
fmt.Printf("%s, agregado por %s", strings.TrimSpace(string(bufSong[:n])), conn.RemoteAddr())
|
fmt.Printf("%s, agregado por %s\n", 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]))))
|
cmdmpc := exec.Command("bash", "-c", fmt.Sprintf(`runuser -u kar -- mpc insert %q && mpc next`, strings.TrimSpace(string(bufSong[:n]))))
|
||||||
_, err = cmdmpc.CombinedOutput()
|
out, err := cmdmpc.CombinedOutput()
|
||||||
if err != nil {
|
if strings.TrimSpace(string(out)) == "MPD error: Not playing" {
|
||||||
log.Println("Error al reproducir cancion", err)
|
log.Println("Cancion agregada")
|
||||||
|
} else {
|
||||||
|
if err != nil {
|
||||||
|
log.Println("Error al agregar cancion", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
_ = playSong()
|
||||||
conn.Close()
|
conn.Close()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user