View previous topic :: View next topic |
Author |
Message |
sarahb523 Guru
Joined: 10 Mar 2004 Posts: 423 Location: Berlin
|
Posted: Fri Sep 17, 2004 6:13 am Post subject: |
|
|
ich hab noch eine verbose option hinzugefügt. Jetzt fehlt nur noch eine schöne formatierung des verbose textes.
Auf meiner Wunschliste ist jetzt noch ein kleiner check ob die gefundene datei ein link ist. Wenn das nen link ist, dann sollte der neu anzulegende link nicht auf den gefundenen, sondern auf sein ziel zeigen. Wenn der link ungültig ist, soll weitergesucht werden.
@equinox0r
kannst du auch mal deine version abgleichen und posten? Denn ich denke da is was unterschiedlich... (hab ich anhand deiner ausgaben gesehen) _________________ AMD Sempron 2400+ / 1GB RAM / NVidia Geforce 5200FX /
Kernel 2.6.31-gentoo-r4 / kde 4.3 |
|
Back to top |
|
|
equinox0r l33t
Joined: 18 Feb 2004 Posts: 614
|
Posted: Fri Sep 17, 2004 5:03 pm Post subject: |
|
|
soooo.. schaust du mal hier
mein vollständiges komplettes aktuelles dist_overlay mit check_mount
EDIT: code ist richtig und funzt, bla
EDIT #2: volltrunkenerweise noch nen bug entdeckt und gefixed *hrhr* (3:13 uhr mez)
buggy: fstab_out=`cat /etc/fstab | awk '{print $2}' | grep -v "^#" | grep -v "^/$"`
fix: fstab_out=`cat /etc/fstab | grep -v "^#" | awk '{print $2}' | grep -v "^/$"`
EDIT #3 (Mo Sep 20 22:04:55 CEST 2004) neue version online (0.3) _________________ AMD 2400+ XP | 1024 MB RAM | ATI Radeon 9600Pro
Gentoo Base System version 1.4.16 | Portage 2.0.51.19 | 2.6.11-gentoo-r9 Kernel
Last edited by equinox0r on Mon Sep 20, 2004 8:05 pm; edited 1 time in total |
|
Back to top |
|
|
sarahb523 Guru
Joined: 10 Mar 2004 Posts: 423 Location: Berlin
|
Posted: Sat Sep 18, 2004 8:35 am Post subject: |
|
|
he das sieht ja richtig toll aus. Kannst du DIST_COPY="0" mal durch DIST_COPY=false (und die entsprechende if zeile) ändern? Ich hatte das in meiner vorigen Version schon getan.
Jetzt fehlen eigentlich nur noch 2 cmd zeilen params zur vollständigkeit:
--help
--version
wenn jemand lust und zeit hat... ansonsten mach ich das am kommenden Montag _________________ AMD Sempron 2400+ / 1GB RAM / NVidia Geforce 5200FX /
Kernel 2.6.31-gentoo-r4 / kde 4.3 |
|
Back to top |
|
|
equinox0r l33t
Joined: 18 Feb 2004 Posts: 614
|
Posted: Mon Sep 20, 2004 8:04 pm Post subject: |
|
|
dist_overlay 0.3 released!
neues feature: ignore_mount_fail und etwas code umgeschrieben .. kommentiert wird später
hier der code:
Code: | mittlerweile hab ich v.0.3.1 released ... s.u. |
und hier noch etwas output: Code: | [21:44:27] [root@dude.zion]
[~] $ emerge net-misc/whois
Calculating dependencies ...done! \
>>> emerge (1 of 1) net-misc/whois-4.6.6-r3 to /
>>> Downloading http://gentoo.osuosl.org/distfiles/whois_4.6.6.tar.gz
DISToverlay
* WARNING Performing DEEPSCAN. This may take some time on large filesystems...
* searching for whois_4.6.6.tar.gz...
scanning /data/mp3 ... file not found.
* /mnt/dvd is not mounted in filesystem. Trying to mount ...
* /mnt/dvd could not be mounted.
scanning /mnt/dvd ... file not found.
* /mnt/burn is not mounted in filesystem. Trying to mount ...
* /mnt/burn could not be mounted.
scanning /mnt/burn ... file not found.
scanning /mnt/dist ... file found!
* make a link from file to distfiles
.... |
.. und mit IGNORE_MOUNT_FAIL=false .. : Code: | [21:52:27] [root@dude.zion]
[~] $ emerge net-misc/whois
Calculating dependencies ...done! \
>>> emerge (1 of 1) net-misc/whois-4.6.6-r3 to /
>>> Downloading http://gentoo.osuosl.org/distfiles/whois_4.6.6.tar.gz
DISToverlay
* WARNING Performing DEEPSCAN. This may take some time on large filesystems...
* searching for whois_4.6.6.tar.gz...
scanning /data/mp3 ... file not found.
* /mnt/dvd is not mounted in filesystem. Trying to mount ...
* /mnt/dvd could not be mounted.
* Exiting from previous errors (IGNORE_MOUNT_FAIL)
* Requested file is not in distfiles overlay.
* Fetching file from original URI
http://gentoo.osuosl.org/distfiles/whois_4.6.6.tar.gz
.... |
sowie auszugsweise meine /etc/make.conf:
Code: | DISTDIRS="/data/mp3:/mnt/dvd:/mnt/burn:/mnt/dist"
#FETCHCOMMAND='/usr/bin/wget --waitretry=5 -O ${DISTDIR}/${FILE} ${URI}'
FETCHCOMMAND='/usr/local/bin/dist_overlay.sh --search ${URI}'
DIST_FETCH="/usr/bin/wget -t 1 --waitretry=5 --passive-ftp -O ${DISTDIR}/${FILE} ${URI}"
DIST_CHECK_MOUNT=true
DIST_DEEPSCAN=true |
lecker oder?
allerdings gefällt mir Code: | # download distfile
function download_distfile {
file_uri="$1"
file_name="$2"
${DIST_FETCH} -O ${DISTDIR}/$file_name $file_uri
} | nicht so ganz denn eigentlich gehört das nach oben in die einstellungen, ist aber ohne $file_uri nicht möglich .. any ideas? (nicht nur sarahb *g*) _________________ AMD 2400+ XP | 1024 MB RAM | ATI Radeon 9600Pro
Gentoo Base System version 1.4.16 | Portage 2.0.51.19 | 2.6.11-gentoo-r9 Kernel
Last edited by equinox0r on Tue Sep 21, 2004 2:05 am; edited 1 time in total |
|
Back to top |
|
|
equinox0r l33t
Joined: 18 Feb 2004 Posts: 614
|
Posted: Tue Sep 21, 2004 2:04 am Post subject: |
|
|
*argl* .. ich hab zuviel zeit und nix zu tun
noch eine neue version draussen ... dist_overlay 0.3.1 released (und nebenbei bin ich auch noch Guru geworden)
clean mode wurde etwas verbessert....
EDIT (Di Sep 21 23:17:43 CEST 2004):
- Codeoptimierung function download_distfile
- Release final version 0.3.2
EDIT (Sa Jan 04:45:22 CEST 2005):
- Neues Release 0.3.3
- several bugfixes
aktuelle Version herunterladen
http://lichtspiele.org/~equinox/dist_overlay/
und natürlich etwas ausgabe Code: | [04:01:13] [root@dude.zion]
[~] $ dist_overlay.sh --clean
DISToverlay
Cleaning up dead links in /usr/portage/distfiles...
* Deleting symlink whois... Sure? (y|n) y
* Deleting symlink whoisficken... Sure? (y|n) y
Nothing left to do; exiting. |
@sarah und alle die sich ältere versionen aufgehoben haben ...
könnt ihr mir was ihr noch habt bitte schicken? ich hab nicht mehr alle (vor allem deine init version sarah) und wollte das mal alles gesammelt online stellen .. merci _________________ AMD 2400+ XP | 1024 MB RAM | ATI Radeon 9600Pro
Gentoo Base System version 1.4.16 | Portage 2.0.51.19 | 2.6.11-gentoo-r9 Kernel
Last edited by equinox0r on Sat Jan 08, 2005 3:47 am; edited 6 times in total |
|
Back to top |
|
|
sarahb523 Guru
Joined: 10 Mar 2004 Posts: 423 Location: Berlin
|
Posted: Tue Sep 21, 2004 9:53 am Post subject: |
|
|
he das script wird ja immer genialer. Alte versionen (bis auf die die ich hier gepostet habe) hab ich leider nicht. Dien ursprungsversion läßt sich sicher herstellen.
die aktuelle version hat aber noch einen kleinen schönheitsfehler. Wenn deltup verwendet wird, wird dem deltup script auch die wget option -O mitgegeben. dieses führt natürlich zu einem fehler. Ich habe bei mir die option herrausgenommen. Wozu brauchen wir die überhaupt? das deltup script benutzt die option intern auch nicht (von dort hab ich übrigends die wget zeile) _________________ AMD Sempron 2400+ / 1GB RAM / NVidia Geforce 5200FX /
Kernel 2.6.31-gentoo-r4 / kde 4.3 |
|
Back to top |
|
|
equinox0r l33t
Joined: 18 Feb 2004 Posts: 614
|
Posted: Tue Sep 21, 2004 5:07 pm Post subject: |
|
|
von mir aus kann das auch -O auch wieder raus, allerdings weiss ich nicht, ob das distfile dann auch wirklich nach $DISTDIR heruntergeladen wird... müsste ich ma ausprobieren
oder die andere möglichkeit dass DIST_FETCH in der make.conf stehen muss, dann haben wir keine probleme mehr
mein lieblingsfähnrich (harry kim) hat übrigens mal gesagt dass ein gutes programm nicht durch zu viele parameter verschlechtert werden sollte ... in diesem zusammenhang würde ich dann gerne die final releasen wollen, ausserdem wäre ein eintrag in https://forums.gentoo.org/viewtopic.php?t=67849 bestimmt sinnvoll ... die ehre überlass ich dir sarah, ist schliesslich "dein" script _________________ AMD 2400+ XP | 1024 MB RAM | ATI Radeon 9600Pro
Gentoo Base System version 1.4.16 | Portage 2.0.51.19 | 2.6.11-gentoo-r9 Kernel |
|
Back to top |
|
|
equinox0r l33t
Joined: 18 Feb 2004 Posts: 614
|
|
Back to top |
|
|
Rawk n00b
Joined: 21 Dec 2003 Posts: 44
|
Posted: Tue Jan 04, 2005 5:03 pm Post subject: |
|
|
Vielen Dank für das nette Script.
Zwei Dinge sind mir aufgefallen:
- in DISTDIRS muss ein : stehen, auch wenn nur ein Verzeichnis eingetragen ist.
- in DIST_FETCH mit wget sollte man "-P ${DISTDIR}" ergänzen, damit die Datei auch im richtigen Ordner landet. Hatte mich erst gewundert warum, die Datei immer wieder runtergeladen wird, bis ich gemerkt hab, dass sie im aktuellen Verzeichnis gelandet ist. |
|
Back to top |
|
|
Rawk n00b
Joined: 21 Dec 2003 Posts: 44
|
Posted: Tue Jan 04, 2005 7:45 pm Post subject: |
|
|
Code: | if ${DIST_COPY} ; then |
lief bei mir nicht; habs dann mal in Code: | if [ ${DIST_COPY} ]; then | geändert und gesetzt.
Außerdem funktioniert deepscan nicht, da beim Aufruf von get_distfile $NEW_FILE und $DIR übergeben werden und $DIR einen Pfad aus $DISTDIRS enthält ohne den/die Unterordner. Ich hab mich dann mal versucht (obwohl ich (bisher) keine Ahnung vom shell scripting hab ) und das ist dabei herausgekommen:
Code: |
# DIST_DEEPSCAN for searching in subdirectories
if ( ${DIST_DEEPSCAN} ); then
DIST_FIND_RESULT=`find "$DIR" ${DIST_DEEPSCAN_OPTS} -name "$NEW_FILE"`
if [ -n "$DIST_FIND_RESULT" ]; then
LENGTH1=`expr length "$DIST_FIND_RESULT"`
LENGTH2=`expr length "$NEW_FILE"`
LENGTH=`expr $LENGTH1 - $LENGTH2`
LENGTH=`expr $LENGTH - 1`
DIR=`echo $DIST_FIND_RESULT | cut -c -$LENGTH`
get_distfile $NEW_FILE $DIR
fi
|
Ist vielleicht nicht die beste Möglichkeit, aber es funktioniert. |
|
Back to top |
|
|
equinox0r l33t
Joined: 18 Feb 2004 Posts: 614
|
Posted: Sat Jan 08, 2005 3:44 am Post subject: |
|
|
hallöle .. mal wieder was neues:
release v. 0.3.3
+echo $DISTDIRS | grep : > /dev/null || break
in function scan
--info parameter hinzugefügt
raus aus der endlosschleife wenn DISTDIRS kein : im string hat.
@Rawk: den von dir beschriebenen Fehler hab ich nur teilweise feststellen können.
die variablen $NEW_FILE und $DIR sind durchaus richtig gesetzt, in $NEW_FILE steht der dateiname der gefundenen datei, in $DIR das verzeichnis zur datei.
allerdings hattest du recht: Code: | if [ ${DIST_COPY} ]; then | muss richtig sein, danke dafür, hab ich gleich mitgefixed für das neue release.
die jew. aktuelle version findet ihr übrigens unter http://lichtspiele.org/~equinox/dist_overlay
bis denn
ps: sarah, wenn du das hier mal lesen solltest: nimmst du bitte auch deine alten codeschnipsel raus (falls vorhanden) und anstelle davon nen verweis auf die url. thx _________________ AMD 2400+ XP | 1024 MB RAM | ATI Radeon 9600Pro
Gentoo Base System version 1.4.16 | Portage 2.0.51.19 | 2.6.11-gentoo-r9 Kernel |
|
Back to top |
|
|
d4rkn0va n00b
Joined: 07 Jan 2005 Posts: 22
|
Posted: Sat Jan 08, 2005 6:09 pm Post subject: |
|
|
Ich versteh selbst nicht ganz wieso, aber auf jeden Fall kopiert das Script bei mir trotz DIST_COPY=false jede der gefundenen Dateien aus den anderen Verzeichnissen nach /usr/portage/distfiles.
Vll hat ja jemand noch diesen Fehler, bin irgendwie langsam am verzweifeln was ich noch machn koennte.
Nachtrag:
Die kritische Stelle sollte jawohl diese hier sein, scheint mir aber alles in Ordnung, trotzdem krieg ich das Mistding echt nicht zum linken!
Code: | if [ ${DIST_COPY} ]; then
write_log "(COPY) $1 ($DISTDIR)"
echo -e "${GREEN} * ${NORMAL} copy file to distfiles\n\n"
cp $2/$1 $DISTDIR
else
write_log "(SYMLINK) $1 ($DISTDIR -> $2)"
echo -e "${GREEN} * ${NORMAL} make a link from distfiles to file\n\n"
ln -sf $2/$1 $DISTDIR/$1
fi
|
Nachtrag 2:
Selbst wenn ich das Script dazu zwinge, mir nen link zu machen statt die Datei zu kopieren, bricht mir mein emerge mit einem Fehler bei einem chown aufgrund read-only ab, da die gelinkte Datei bei mir auf DVD liegt.
Manuelles chown :portage funktioniert aber.
Sind das alles Fehler meinerseits oder sind diese Fehler sonst auch bekannt? |
|
Back to top |
|
|
Rawk n00b
Joined: 21 Dec 2003 Posts: 44
|
Posted: Sun Jan 09, 2005 8:51 pm Post subject: |
|
|
Es muss wohl Code: | if ( ${DIST_COPY} ); then | sein...
Das mit dem read-only ist bei mir auch aufgetreten (nfs). Wenn man dann nochmal emerge xyz macht gehts. Aber soweit ich das beurteilen kann liegt das an Portage und nicht an dem Script... |
|
Back to top |
|
|
Pette n00b
Joined: 14 Feb 2004 Posts: 46 Location: Hamburg / Germany
|
Posted: Wed Jan 19, 2005 11:24 am Post subject: |
|
|
Hallo.
Ich bin hellauf begeistert von diesem tollen Skript!
Hab dennoch 2 Fragen/Anmerkungen:
1) Mein eines Dist_Overlay Verzeichnis wird per NFS von meinem Desktop-PC auf meinen Laptop gemountet. Wenn ich nun mit dem Laptop an der Uni bin und dort "emerge -uf" ausführe, versucht er natürlich auch dieses Verzeichnis zu mounten. Und das kann mit unter Minuten dauern, bis er gerafft hat, dass das Verzeichnis nicht gemountet werden kann.
Kann man den mount-Prozess irgendwie beschleunigen? Gibts da nicht ne Art "timout" Funktion?
Wäre cool.
2) Wenn er eine Datei auf dem Desktop zuhause gefunden hat, macht er einen Link dorthin. Wunderbar. Jedoch bricht das Skript sofort danach mit Fehler-Meldungen ab. Ich glaube diese Fehlermeldungen stehen in Zusammenhang mit dem getdelta-Skript. Bin mir aber nicht sicher.
Ich werde die Fehlermeldung nachreichen, sobald ich zuhause bin.
Greetz,
Pette |
|
Back to top |
|
|
d4rkn0va n00b
Joined: 07 Jan 2005 Posts: 22
|
Posted: Mon Jan 31, 2005 2:42 pm Post subject: |
|
|
Also, das mit dem Read-Only-Fehler ist garantiert ein "Fehler" in Portage, allerdings gibts da sicher auch nen Fix dafür, egal wie dirty er ist..
Morgen rüst ich hier 60 Rechner auf gentoo um, spätestens dann brauch ich das Script, hat irgendwer noch Vorschläge? _________________ AMD AthlonXP 3000+ @ 2,4GHz | 1 GB DDR-RAM | 2x160GB Samsung SATA (SoftRAID0)
=> gentoo 2.6.14-r1 | gcc-4.0.1 | gnome-2.12 [ stage 1 on 3 ] |
|
Back to top |
|
|
Pette n00b
Joined: 14 Feb 2004 Posts: 46 Location: Hamburg / Germany
|
Posted: Wed Mar 23, 2005 7:20 pm Post subject: |
|
|
Hab gerade diesen Thread entdeckt:
HOWTO:Download Cache for your LAN-Http-Replicator (ver 3.0)
Hab mich noch nicht wirklich näher damit befasst, aber ist das nicht sowas in der Art wie DistOverlay?
Hat das hier schon jemand ausprobiert?
Greetz,
Pette |
|
Back to top |
|
|
|