Skip to content

Instantly share code, notes, and snippets.

@eazyliving
Created August 25, 2015 22:52
Show Gist options
  • Save eazyliving/ad014f8a26a53919eefe to your computer and use it in GitHub Desktop.
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
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