Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Fortschrittsanzeige bei ebuild Emerge
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

Goto page Previous  1, 2  
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Diskussionsforum
View previous topic :: View next topic  
Author Message
Anarcho
Advocate
Advocate


Joined: 06 Jun 2004
Posts: 2970
Location: Germany

PostPosted: Fri Jan 13, 2006 3:24 pm    Post subject: Reply with quote

Das Problem ist, das das * von der bash aufgelöst wird und dann die Liste als Parameter angeben wird.
Aber du kannst einem Programm nicht beliebig viele Paramter übergeben.

Daher muss du irgendwie anders, z.b. wie Libby schrieb, mit find die Liste erstellen.

Zeig dochmal welchen find Aufruf du verwendest hast.
_________________
...it's only Rock'n'Roll, but I like it!
Back to top
View user's profile Send private message
Finswimmer
Bodhisattva
Bodhisattva


Joined: 02 Sep 2004
Posts: 5467
Location: Langen (Hessen), Germany

PostPosted: Fri Jan 13, 2006 3:37 pm    Post subject: Reply with quote

Hi,
ich verwende:

/usr/bin/find $pfad > /tmp/makeprogress-tmp

Und so sieht es dann aus:

Code:
[16:32:53]|[root@tobi-rechner]|/home/tobi$ /tmp/makeprogress nvu
/tmp/makeprogress: line 15: /usr/bin/find: Argument list too long


Bin ich aber direkt in dem Verzeichnis, ohne Script nur per Konsole, und gebe find > 1 ein, geht es ohne Probleme.

Ursprünglich hatte ich das nicht mit der extra Datei, sondern direkt per /usr/bin/find $pfad | /bin/grep make.......


Ich bin grad ein bisschen ratlos...

Danke für deine Bemühungen.

Tobi
Back to top
View user's profile Send private message
l3u
Advocate
Advocate


Joined: 26 Jan 2005
Posts: 2545
Location: Konradsreuth (Germany)

PostPosted: Fri Jan 13, 2006 3:46 pm    Post subject: Reply with quote

Komisch ... bei mir funktioniert folgendes einwandfrei:
Code:
erhome portage # pwd
/var/log/portage

erhome portage # find | wc -l
1019 (also 1019 Dateien, sprich: viele ;-)

erhome portage # find | grep "inkscape"
./3533-inkscape-0.43.log
./3644-inkscape-0.43.log
./3864-inkscape-0.43.log
./3532-inkscape-0.43.log
./3645-inkscape-0.43.log
./3863-inkscape-0.43.log

Die Fehlermeldung, die du bekommst, seht eher so aus, als ob dir Argumentliste für find zu lang wäre, nicht die für grep.

EDIT:

Wobei ich aber nach wie vor sicher bin, daß das der falsche Weg ist: in meinem Fall gabe es hier 6 verschiedene Inkscape-Log-Dateien zur Auswahl -- woher willst du so wissen, welche die aktuelle ist?


Last edited by l3u on Fri Jan 13, 2006 3:50 pm; edited 2 times in total
Back to top
View user's profile Send private message
Finswimmer
Bodhisattva
Bodhisattva


Joined: 02 Sep 2004
Posts: 5467
Location: Langen (Hessen), Germany

PostPosted: Fri Jan 13, 2006 3:49 pm    Post subject: Reply with quote

Ja, in der Konsole geht bei mir auch alles einwandfrei.

Aber da, wo das Script abbricht, bei der Datei handelt es sich um 38829 38838 1976075 (Ausgabe von wc)


Tobi
Back to top
View user's profile Send private message
friedegott
n00b
n00b


Joined: 06 Sep 2004
Posts: 60
Location: Munich, Germany

PostPosted: Fri Jan 13, 2006 5:02 pm    Post subject: Reply with quote

Hm ich wuerd wohl die .c, .cc, .cpp und .o dateien zaehlen lassen und damit dann die Fortschritt abschaetzen...

Code:

#!/bin/sh

die() {
        echo $1
        exit 1
}

tail -n 1 /var/log/emerge.log | egrep -q "Compiling/Merging"
[ $? -eq 1 ] && die "no current merge found"

cm=$(tail -n 1 /var/log/emerge.log| awk '{ print $7 }' | awk -F: '{ print $1 }')
cm=${cm:1}
cm=`basename ${cm}`
echo $cm

nc=$(find /var/tmp/portage/$cm/ | egrep "\.c[cp]?p?$" | wc -l)
no=$(find /var/tmp/portage/$cm/ | egrep "\.o$" | wc -l)

echo "${no}/${nc}"


mal so auf die schnelle...
Back to top
View user's profile Send private message
Anarcho
Advocate
Advocate


Joined: 06 Jun 2004
Posts: 2970
Location: Germany

PostPosted: Fri Jan 13, 2006 5:31 pm    Post subject: Reply with quote

Finswimmer wrote:
Hi,
ich verwende:

/usr/bin/find $pfad > /tmp/makeprogress-tmp

Und so sieht es dann aus:

Code:
[16:32:53]|[root@tobi-rechner]|/home/tobi$ /tmp/makeprogress nvu
/tmp/makeprogress: line 15: /usr/bin/find: Argument list too long


Bin ich aber direkt in dem Verzeichnis, ohne Script nur per Konsole, und gebe find > 1 ein, geht es ohne Probleme.

Ursprünglich hatte ich das nicht mit der extra Datei, sondern direkt per /usr/bin/find $pfad | /bin/grep make.......


Ich bin grad ein bisschen ratlos...

Danke für deine Bemühungen.

Tobi


Vielleicht steht in $path noch was mit * drin?

Sonst lass dir den Inhalt von $path mal anzeigen.
_________________
...it's only Rock'n'Roll, but I like it!
Back to top
View user's profile Send private message
Finswimmer
Bodhisattva
Bodhisattva


Joined: 02 Sep 2004
Posts: 5467
Location: Langen (Hessen), Germany

PostPosted: Fri Jan 13, 2006 5:57 pm    Post subject: Reply with quote

Okay. Da waren echt noch ein paar Fehler drin.

Code:
#!/bin/bash

log="/var/log/portage/"`/usr/bin/ls /var/log/portage/ | /bin/grep -i $1`

Verarbeitet=`cat $log | /bin/grep "make\[.\]"|/bin/grep -i leaving |wc|gawk -F " " '{ print $1 }'`

#pfad="/var/tmp/portage/"`/usr/bin/ls /var/tmp/portage/|grep $1`"/work/"`/usr/bin/ls /var/tmp/portage/|grep $1`

paket=`/usr/bin/ls /var/tmp/portage/|grep $1`

pfad="/var/tmp/portage/"$paket"/work/"

/usr/bin/find  $pfad > /tmp/makeprogress-tmp

gesamt=` cat /tmp/makeprogress-tmp |/bin/grep -i makefile|grep -v ".am" |/bin/grep -v ".in"|wc|gawk -F " " '{ print $1 }'`

echo "Es wurden schon "$Verarbeitet" Verzeichnisse von" $gesamt "verarbeitet"


So ists besser.

Unter der Annahme, dass /var/tmp/portage immer schön sauber ist, gibt es keine Probleme.


Ich muss nur noch bei Gelegenheit eine Abfrage einfügen, dass, sofern mehrere LogDateien vorhanden sind, immer die aktuelle genommen wird.


Tobi
Back to top
View user's profile Send private message
l3u
Advocate
Advocate


Joined: 26 Jan 2005
Posts: 2545
Location: Konradsreuth (Germany)

PostPosted: Fri Jan 13, 2006 7:16 pm    Post subject: Reply with quote

Naja, aber "immer schön sauber" heißt ja nicht zwingend, daß keine Logdateien für ältere Merges drin sind ... es muß doch rauszufinden sein, nach welchen Kriterien diese Zahl vorne am Log generiert wird!
Back to top
View user's profile Send private message
Finswimmer
Bodhisattva
Bodhisattva


Joined: 02 Sep 2004
Posts: 5467
Location: Langen (Hessen), Germany

PostPosted: Sat Jan 14, 2006 1:09 pm    Post subject: Reply with quote

Nicht unbedingt.

Was für mein Script Voraussetzung ist, ist dass in /var/tmp/portage keine älteren (abgebrochenen) entpackte Source Pakete liegen.

Denn da sucht das Script nach dem Namen, den es dann übernimmt und in /var/log/portage/ danach sucht.

Da ich dann schon den richtigen Namen mit Versionsnummer habe, ist es nur noch wichtig, dass die neuste Version von der Log Datei genommen wird.
Könnte ja sein, dass man das Programm zweimal an einem Tag installieren muss...

Also fehlt nur noch diese Abfrage, und das Script geht dann für alle Programme die mittels make kompiliert werden...

Tobi
Back to top
View user's profile Send private message
l3u
Advocate
Advocate


Joined: 26 Jan 2005
Posts: 2545
Location: Konradsreuth (Germany)

PostPosted: Sat Jan 14, 2006 3:14 pm    Post subject: Reply with quote

Das könnt man sich aber alles sparen, wenn man die Nummer vor der Logdatei wüßte ...
Back to top
View user's profile Send private message
Finswimmer
Bodhisattva
Bodhisattva


Joined: 02 Sep 2004
Posts: 5467
Location: Langen (Hessen), Germany

PostPosted: Wed Jan 25, 2006 11:08 am    Post subject: Reply with quote

Code:
#!/bin/bash



log="/var/log/portage/"`/usr/bin/ls -1 --sort=time /var/log/portage/ |/bin/grep -i $1 |/usr/bin/head -n 1`

Verarbeitet=`cat $log | /bin/grep "make\[.\]"|/bin/grep -i leaving |wc|gawk -F " " '{ print $1 }'`

#pfad="/var/tmp/portage/"`/usr/bin/ls /var/tmp/portage/|grep $1`"/work/"`/usr/bin/ls /var/tmp/portage/|grep $1`

paket=`/usr/bin/ls /var/tmp/portage/|grep $1`

pfad="/var/tmp/portage/"$paket"/work/"

let gesamt=`/usr/bin/find $pfad -type d | wc -l`-1

echo "Es wurden schon "$Verarbeitet" Verzeichnisse von" $gesamt "verarbeitet"


Neueste Variante:

Gesamt zählt alle Verzeichnisse, denn mir ist aufgefallen, dass make in alle Verzeichnisse reingeht, undabhänig davon, ob da eine Makefile drin ist.
log ist nun immer die aktuellste Datei von einem bestimmten Suchbegriff.

Nun müssten annährend richtige Ergebnisse entstehen.

Tobi
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Diskussionsforum All times are GMT
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum