Created
August 25, 2015 22:52
-
-
Save eazyliving/ad014f8a26a53919eefe to your computer and use it in GitHub Desktop.
Bash-Script zum tauschen der base-URL in auphonic description jsons. Im Grunde ein aufgeblasenes sed
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
printf "\033c\n"; | |
printf "Dieses kleine bash-Script tauscht in den auphonic-Dateien des firtz (json) die Base-URL der Mediendateien.\n"; | |
printf "Du benötigst das, wenn Du die Audiodateien auf einen anderen Server migrieren möchtest.\n"; | |
printf "Wo vorher http://fasel.bla/audio1.mp3 der Ort der Datei war, ist er nun http://foo.bar/audio1.mp3.\n"; | |
printf "Diese Script übernimmt die Arbeit, diese Änderungen in den Dateien vorzunehmen.\n\n"; | |
printf "Wenn Du nun auf RETURN drückst, wird das Script diesen Ordner und die Unterordner nach Dateien durchsuchen,\n"; | |
printf "die solche Base-URLs enthalten. Wähle bitte die zu ändernde aus. Los geht es! RETURN drücken!\n\n"; | |
read | |
baseurls=($(grep -ihr --include "*.json" "base_url" *|sort|uniq|awk -F' ' '{ gsub(",","");gsub("\"","") ;print $2}')) | |
printf "Es wurden folgende URLs gefunden:\n\n"; | |
for i in "${!baseurls[@]}" | |
do | |
printf "$i: ${baseurls[$i]}\n" | |
done | |
printf "\nBitte wähle die Nummer vor der URL, die Du ändern möchtest: "; | |
read urlnum; | |
oldurl=${baseurls[$urlnum]}; | |
printf "\nFein, Du möchtest also $oldurl ändern.\n\n"; | |
printf "Bitte nenne mir nun die URL, die Du in Zukunft nutzen möchtest. Gib bitte den kompletten URL an. Inklusive http:// und einem / am Ende!\n\n"; | |
printf "Wie soll nun die zukünftige URL lauten?: "; | |
read newurl; | |
if [ "$newurl" == "" ]; then | |
printf "Gut, das wird nichts...\n"; | |
exit 0; | |
fi; | |
if [ ${newurl: -1} != "/" ]; then | |
printf "Nicht aufgepasst! Da fehlt ein / am Ende\n!"; | |
exit 0; | |
fi; | |
printf "\nFein, Du möchtest also\n\t$oldurl\nnach\n\t$newurl\nändern.\n\n"; | |
printf "Schau Dir die zwei URLs noch einmal genau an und überprüfe, ob das so korrekt ist.\n"; | |
printf "Wenn Du gleich auf RETURN drückst, wird diese Script in allen Dateien die URLs entsprechend ändern.\n"; | |
printf "Sicherheitshalber wird von allen betreffenden Dateien eine Sicherheitskopie angelegt.\n"; | |
printf "Der Dateiname wird dabei von XYZ.json nach XYZ.json.bak geändert. Sollte es also Probleme geben,\n"; | |
printf "hast Du also noch alle Dateien im Original vorliegen.\n\n"; | |
printf "Du bist Dir also sicher, dass das so in Ordnung geht? Bestätige bitte mit 'ja', gefolgt von RETURN: "; | |
read jawoll; | |
if [ "$jawoll" != "ja" ]; then | |
printf "ich brech' ab...\n"; | |
exit 0; | |
fi; | |
files=($(grep -ilr --include "*.json" "$oldurl" *)) | |
for i in "${files[@]}" | |
do | |
printf "$i: "; | |
printf "creating backup to $backupfile... changing URLs..."; | |
sed -i.bak "s,\"$oldurl\",\"$newurl\",g" $i | |
printf "erledigt!\n"; | |
done | |
printf "\nDas Script ist fertig. Schau Dir das Ergebnis auf der Webseite an, überprüfe den Player und die Downloadlinks.\n"; | |
printf "Bedenke bitte, dass der firtz einen Cache hat und Du deshalb die Seite mittels eines erzwungenen Reloads neu laden solltest.\n"; | |
printf "Unter Windows wäre das z.B. CTRL+SHIFT+R, unter OSX CMD+SHIFT+R. Machs gut!\n"; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment