Mitt mål är att ha en fungerande grafisk ”progress bar” som följer de siffror som ett visst terminalprogram spottar ur sig. Terminalprogrammet heter ”flac” och finns väl inte som standard i Ubuntu, men kan installeras från programcentralen eller med:
Kod: Markera allt
sudo apt-get install flac
Vad man brukar göra är tydligen, enligt vad jag funnit på nätet, att man spottar ur sig siffror och sedan gör en pipe till zenity, som då använder dessa siffror för att visa förloppet. Här är lite kod jag hittade som visar hur man kan göra:
Kod: Markera allt
#!/bin/sh
(
echo "10" ; sleep 1
echo "# Uppdaterar e-postloggar" ; sleep 1
echo "20" ; sleep 1
echo "# Nollställer cron-jobb" ; sleep 1
echo "50" ; sleep 1
echo "Den här raden kommer att ignoreras" ; sleep 1
echo "75" ; sleep 1
echo "# Startar om systemet" ; sleep 1
echo "100" ; sleep 1
) |
zenity --progress \
--title="Uppdaterar systemloggar" \
--text="Söker av e-postloggarna..." \
--percentage=0
Så programmet jag vill köra kräver ju först och främst att man har en giltig FLAC-fil och om sådan saknas kan man ju låna en av mig här, spara den bara på disken och undvik gärna att lyssna på den.
%-siffrorna, tillsammans med en massa oönskat skräp, får man ut i terminalen om man skriver
Kod: Markera allt
flac -t Filnamn
Kod: Markera allt
flac -ct Filnamn 2>flactest
Har försökt på olika sätt, bland annat med grep, att bara få ut raderna med %-siffrorna, men inget har lyckats hittills. De ska ju komma ut i realtid också, det duger ju alltså inte att först omdirigera till en fil och därefter fixa resten från filen, för då är det ju redan för sent, så att säga.flac 1.2.1, Copyright (C) 2000,2001,2002,2003,2004,2005,2006,2007 Josh Coalson
flac comes with ABSOLUTELY NO WARRANTY. This is free software, and you are
welcome to redistribute it under certain conditions. Type `flac' for details.
Filnamn: testing, 27% complete
Filnamn: testing, 54% complete
Filnamn: testing, 82% complete
Filnamn: ok
Vad jag har provat med hittills är ju olika kombinationer av omdirigering och grep, men det känns inte som att den vägen är framkomlig, i alla fall inte för mig just nu…
Tacksam för alla som helst tänkbara tips och idéer.