~kris/dots

srice

ref: e9b48d06a8541f3eda5c4db90382ab3c77183afb srice/.config/eww/scripts/weather-wrapper.sh -rwxr-xr-x 1.5 KiB
e9b48d06 — Kris Yotam xprofile: systemd-aware pipewire start + blueman-applet; sb-internet: tolerate missing /proc/net/wireless 2 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/bin/bash
# Wrapper script untuk weather agar output JSON friendly untuk Eww
WEATHER_SCRIPT="$HOME/.config/eww/scripts/weather.sh"

case "$1" in
    temp)
        # Ambil temperature dari weather.sh
        FULL_OUTPUT=$($WEATHER_SCRIPT)
        # Hapus semua polybar formatting, lalu ambil angka temperature
        echo "$FULL_OUTPUT" | sed 's/%{[^}]*}//g' | grep -oP '\d+°[CF]' | head -1 || echo "N/A"
        ;;
    
    icon)
        # Ambil icon cuaca dari output weather.sh
        FULL_OUTPUT=$($WEATHER_SCRIPT)
        # Hapus semua polybar formatting codes dulu
        CLEAN_OUTPUT=$(echo "$FULL_OUTPUT" | sed 's/%{[^}]*}//g')
        # Ambil karakter pertama (icon) dan HAPUS SPASI TRAILING
        echo "$CLEAN_OUTPUT" | awk '{print $1}' | xargs || echo ""
        ;;
    
    desc)
        # Ambil deskripsi cuaca
        FULL_OUTPUT=$($WEATHER_SCRIPT)
        # Hapus polybar formatting, lalu ambil text deskripsi
        echo "$FULL_OUTPUT" | sed 's/%{[^}]*}//g' | sed 's/[|].*//g' | awk '{$1=""; print $0}' | sed 's/[0-9]*°[CF]//g' | xargs || echo "N/A"
        ;;
    
    full)
        # Output penuh tanpa polybar formatting
        $WEATHER_SCRIPT | sed 's/%{[^}]*}//g'
        ;;
    
    city)
        # Ambil nama kota dari weather.sh
        grep "^CITY_NAME=" "$WEATHER_SCRIPT" | cut -d"'" -f2 || echo "Unknown"
        ;;
    
    *)
        # Default: kembalikan temperature
        FULL_OUTPUT=$($WEATHER_SCRIPT)
        echo "$FULL_OUTPUT" | sed 's/%{[^}]*}//g' | grep -oP '\d+°[CF]' | head -1 || echo "N/A"
        ;;
esac