37 lines
921 B
Bash
Executable File
37 lines
921 B
Bash
Executable File
#!/bin/bash
|
|
# Can parse 'max_length=SOME_INTEGER' as argument
|
|
# (example: ./now-playing max_lentgh=40)
|
|
|
|
default_max_length=45
|
|
|
|
# Function to trim the info if it exceeds 'max_length' characters
|
|
trim_info() {
|
|
local info="$1"
|
|
local max_length="$2"
|
|
|
|
if [ ${#info} -gt $max_length ]; then
|
|
local trim_length=$((max_length - 1))
|
|
info="${info:0:$trim_length}…"
|
|
fi
|
|
|
|
echo "$info"
|
|
}
|
|
|
|
# Parse the command-line argument for max_length
|
|
if [[ $1 =~ max_length=([0-9]+) ]]; then
|
|
max_length="${BASH_REMATCH[1]}"
|
|
else
|
|
max_length=$default_max_length
|
|
fi
|
|
|
|
# Check if Spotify is playing
|
|
spotify_status=$(playerctl --player=mpd status 2>/dev/null)
|
|
|
|
if [ "$spotify_status" == "Playing" ]; then
|
|
# Get currently playing song from Spotify
|
|
info=$(playerctl metadata --player=mpd --format ' {{title}} • {{artist}}')
|
|
fi
|
|
|
|
trimmed_info=$(trim_info "$info" "$max_length")
|
|
echo "$trimmed_info"
|