Beginnen wir mit der Bash-Funktion, die ich für meinen persönlichen Gebrauch zur Hand hatte:
wget_github_zip() {
if [[ $1 =~ ^-+h(elp)?$ ]] ; then
printf "%s\n" "Downloads a github snapshot of a master branch.\nSupports input URLs of the forms */repo_name, *.git, and */master.zip"
return
fi
if [[ ${1} =~ /archive/master.zip$ ]] ; then
download=${1}
out_file=${1/\/archive\/master.zip}
out_file=${out_file##*/}.zip
elif [[ ${1} =~ .git$ ]] ; then
out_file=${1/%.git}
download=${out_file}/archive/master.zip
out_file=${out_file##*/}.zip
else
out_file=${1/%\/} # remove trailing '/'
download=${out_file}/archive/master.zip
out_file=${out_file##*/}.zip
fi
wget -c ${download} -O ${out_file}
}
Sie möchten, dass die Datei immer master.zip heißt und immer in Ihr Home-Verzeichnis heruntergeladen wird.
wget_github_zip() {
if [[ $1 =~ ^-+h(elp)?$ ]] ; then
printf "%s\n" "Downloads a github snapshot of a master branch.\nSupports input URLs of the forms */repo_name, *.git, and */master.zip"
return
fi
if [[ ${1} =~ /archive/master.zip$ ]] ; then
download=${1}
elif [[ ${1} =~ .git$ ]] ; then
out_file=${1/%.git}
download=${out_file}/archive/master.zip
else
out_file=${1/%\/} # remove trailing '/'
download=${out_file}/archive/master.zip
fi
wget -c ${download} -O ~/master.zip && unzip ~/master.zip && mv ~/master.zip ~/myAddons
}
Es gibt jedoch einige Dinge zu beachten:
1) Mein ursprüngliches Skript gibt Ihnen für jeden Download einen eindeutigen Namen für die Download-Zip-Datei, basierend auf dem Namen des Github-Repositorys. Dies ist im Allgemeinen das, was die meisten Leute wirklich wollen, anstatt dass alles aufgerufen wird masterund sie anschließend manuell umbenannt werden müssen, um die Eindeutigkeit zu gewährleisten. In dieser Version des Skripts können Sie den Wert von $ out_file verwenden, um den entpackten Stammverzeichnisbaum eindeutig zu benennen.
2) Wenn Sie wirklich möchten, dass alle heruntergeladenen zipDateien benannt werden ~/master.zip, möchten Sie sie nach dem Entpacken löschen?
3) Da Sie anscheinend immer alles im Verzeichnis haben möchten ~/myAddons, warum nicht alle Vorgänge dort ausführen und sich die Notwendigkeit ersparen, das entpackte Verzeichnis zu verschieben?