2010-08-02 6 views
6

Nachdem ich ungefähr eine Stunde lang fast jedes Msys-Paket von sourceforge heruntergeladen habe, frage ich mich, ob es einen clevereren Weg dafür gibt. Ist es möglich, wget für diesen Zweck zu verwenden?Wie lade ich alle Dateien eines bestimmten Sourceforge-Projekts herunter?

+0

Sie verwenden SVN | GIT, oder? – sholsapp

+0

Nun, ich könnte, aber Msys bietet nicht SVN/Git Zugang, oder? – FFox

+0

Dies ist die älteste SO Frage, die ich ohne Antwort gesehen habe lol – Assimilater

Antwort

1

Ich habe das Skript erfolgreich eingesetzt:

https://github.com/SpiritQuaddicted/sourceforge-file-download

Für Ihre Nutzung Lauf:

sourceforge-file-downloader.sh msys 

Es alle Seiten die aktuellen Links auf den Seiten und Download finden erster dann herunterladen sollten die endgültigen Dateien.

Aus der Projektbeschreibung:

Hier können Sie alle eine Sourceprojektdatei zum Download bereit. Lädt das aktuelle Verzeichnis in ein Verzeichnis mit dem Namen des Projekts herunter. Übergeben Sie den Namen des Projekts als erstes Argument, zB ./sourceforge-file-download.sh inkscape zum Download alle http://sourceforge.net/projects/inkscape/files/

Nur für den Fall der Repo jemals entfernt wird ich werde es hier posten, da es kurz genug:

#!/bin/sh 

project=$1 
echo "Downloading $project's files" 

# download all the pages on which direct download links are 
# be nice, sleep a second 
wget -w 1 -np -m -A download http://sourceforge.net/projects/$project/files/ 

# extract those links 
grep -Rh direct-download sourceforge.net/ | grep -Eo '".*" ' | sed 's/"//g' > urllist 

# remove temporary files, unless you want to keep them for some reason 
rm -r sourceforge.net/ 

# download each of the extracted URLs, put into $projectname/ 
while read url; do wget --content-disposition -x -nH --cut-dirs=1 "${url}"; done < urllist 

rm urllist