shell script voor bash hulp gezocht (kopete plugin)

Pagina: 1
Acties:

  • MisterE
  • Registratie: April 2002
  • Laatst online: 21-12-2025
Toelichting:
Ik wil in Kopete graag met "/music" verzenden welke track ik afspeel in MPD.
Aangezien er nog geen "now playing" plugin is voor MPD in Kopete dacht ik het anders op te lossen. Met mpc kan aan de mpd server de song informatie opgevraagd worden.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash

export MPD_HOST="10.0.0.83";
export MPD_PORT="6600"; 
 

if [[ $(which mpc) = "" ]]
then
  echo "ERROR: mpc not found!"
else
  mpc_result=$( mpc --format "[[%artist% - ]%title%]|[%file%]" --no-status 2>/dev/null )
  
  if [[ $? -eq 0 ]]
  then
    echo "$mpc_result" | head -n1
  else
    echo "ERROR: fault executing mpc!"
  fi
fi

Dit script staat in de ~/bin directory. Als ik deze normaal run werkt het prima.

Vraag:
Kopete heeft een "Alias" plugin. Helaas geeft dit geen duidelijkheid wat het precies doet. Ik begin te twijfelen of dit alleen voor standaard "acties" is om een alias aan te maken. Als ik in mijn script een simpele echo doet komt dit niet in de chatvensters.

Gelukkig heeft kopete ook de "Pipes" plugin. Deze werkt al iets beter. Deze plugin gooit alles wat je in een chatvenster tikt door een opgegeven script heen. Als ik nu in het script een simpele echo zet (of niets) dan ben ik alleen mijn input kwijt. Maar ik krijg de echo tekst wel in de chat. Ik wil in het script graag zelf bepalen wat van de input doorkomt.
Op http://nienhueser.de/blog/?paged=2 kwam ik iets tegen. Dit gebruikt de stdin in een loop.
Dus iets als dit als test:

code:
1
2
3
4
5
NowPlaying="blaat"
{ while read line
do
  data="$data$line"
done < /dev/stdin; echo "${data}";} | sed "s@/music@${NowPlaying}@g"

Maar dit geeft ook een leeg bericht.
Iemand ideeen?

  • Elijan9
  • Registratie: Februari 2004
  • Laatst online: 12:12
offtopic:
Bij mij heeft Kopete wel een "Now Listening" plugin...


Met pipes vergeet je het origineel ook te echoen, dit doe je door bijvoorbeeld bovenaan in jouw script "cat -" toe te voegen, dit stuurt alles van stdin alvast naar stdout.

War is when the young and stupid are tricked by the old and bitter into killing each other. - Niko Bellic


  • MisterE
  • Registratie: April 2002
  • Laatst online: 21-12-2025
Cool! dat "cat -" was idd wat ik zocht. Thanx!