#!/bin/bash

# =================================================================
# FunkRadio - Ympäristön alustus ja riippuvuuksien tarkistus
# =================================================================

# Määritellään värit tulosteille
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

BASE_DIR="$HOME/funkRadio"
SCRIPT_FILE="$BASE_DIR/sh/newsyRadio.sh"

echo -e "${YELLOW}Aloitetaan FunkRadio-ympäristön valmistelu...${NC}"

# 1. Luodaan kansiorakenne
# -----------------------------------------------------------------
echo -n "Luodaan kansiot... "
mkdir -p "$BASE_DIR/sh"
mkdir -p "$BASE_DIR/talk"
mkdir -p "$BASE_DIR/playlists"
mkdir -p "$BASE_DIR/logs"
echo -e "${GREEN}OK${NC}"

# 2. Luodaan lokitiedostot
# -----------------------------------------------------------------
echo -n "Alustetaan lokitiedostot... "
touch "$BASE_DIR/logs/newsyRadio.log"
touch "$BASE_DIR/logs/musicRadio.log"
touch "$BASE_DIR/logs/errorRadio.log"
echo -e "${GREEN}OK${NC}"

# 3. Luodaan ja alustetaan pääskriptitiedosto
# -----------------------------------------------------------------
if [ ! -f "$SCRIPT_FILE" ]; then
    echo -n "Luodaan tyhjä skriptitiedosto ($SCRIPT_FILE)... "
    touch "$SCRIPT_FILE"
    echo -e "${GREEN}Luotu${NC}"
else
    echo -e "${YELLOW}Tiedosto $SCRIPT_FILE on jo olemassa. Ei ylikirjoiteta.${NC}"
fi

# 4. Annetaan suoritusoikeudet
# -----------------------------------------------------------------
echo -n "Annetaan suoritusoikeudet (chmod +x)... "
chmod +x "$SCRIPT_FILE"
echo -e "${GREEN}OK${NC}"

# 5. Luodaan esimerkki-soittolista (valinnainen)
# -----------------------------------------------------------------
EXAMPLE_PL="$BASE_DIR/playlists/esimerkki.m3u"
if [ ! -f "$EXAMPLE_PL" ]; then
    # Luodaan tyhjä tiedosto, jotta scripti ei valita puuttuvista listoista heti alussa
    touch "$EXAMPLE_PL"
    echo "Luotiin tyhjä soittolista: $EXAMPLE_PL (Lisää tänne mp3-tiedostojen polkuja)"
fi

# 6. Riippuvuuksien tarkistus
# -----------------------------------------------------------------
echo -e "\n${YELLOW}Tarkistetaan tarvittavat ohjelmat...${NC}"

DEPENDENCIES=("mpg123" "curl" "wget" "ffmpeg" "yt-dlp" "mp3gain" "bc")
MISSING_PKGS=()

for cmd in "${DEPENDENCIES[@]}"; do
    if command -v $cmd &> /dev/null; then
        echo -e "  [${GREEN}OK${NC}] $cmd"
    else
        echo -e "  [${RED}PUUTTUU${NC}] $cmd"
        MISSING_PKGS+=("$cmd")
    fi
done

# 7. Tulostetaan asennusohjeet, jos jotain puuttuu
# -----------------------------------------------------------------
echo ""
if [ ${#MISSING_PKGS[@]} -eq 0 ]; then
    echo -e "${GREEN}Kaikki tarvittavat ohjelmat on asennettu!${NC}"
    echo "Voit nyt kopioida koodin tiedostoon $SCRIPT_FILE ja ajaa sen."
else
    echo -e "${RED}Seuraavat ohjelmat puuttuvat: ${MISSING_PKGS[*]}${NC}"
    echo "Asenna ne seuraavilla komennoilla käyttöjärjestelmästäsi riippuen:"

    echo -e "\n--- ${YELLOW}Arch Linux${NC} ---"
    echo "Suurin osa löytyy virallisista lähteistä, mutta mp3gain on yleensä AUR:ssa."
    echo "1. Viralliset paketit:"
    echo "   sudo pacman -S mpg123 curl wget ffmpeg yt-dlp bc"
    echo "2. AUR-paketit (mp3gain) - asenna AUR-helperillä (esim. yay):"
    echo "   yay -S mp3gain"

    echo -e "\n--- ${YELLOW}Ubuntu / Debian${NC} ---"
    echo "mp3gain saattaa vaatia 'universe'-repositorion."
    echo "1. Päivitä pakettilistat ja asenna:"
    echo "   sudo add-apt-repository universe"
    echo "   sudo apt update"
    echo "   sudo apt install mpg123 curl wget ffmpeg yt-dlp mp3gain bc"
    echo ""
    echo "HUOM: Jos Ubuntun 'yt-dlp' on liian vanha (lataukset epäonnistuvat),"
    echo "poista se (sudo apt remove yt-dlp) ja asenna uusin versio suoraan:"
    echo "   sudo wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O /usr/local/bin/yt-dlp"
    echo "   sudo chmod a+rx /usr/local/bin/yt-dlp"
fi

echo -e "\n${GREEN}Valmistelu suoritettu.${NC}"
echo "Skriptisi sijaitsee täällä: $SCRIPT_FILE"

# ~/funkRadio/sh/asetukset_newsyRadio_10.sh
