Aktualisierungsskript für Ubuntu-Rechner

Für Ubuntu-Rechner habe ich es mir seit vielen Jahren angewöhnt ein Skript upgrade.sh zu erzeugen, welches installierte Pakete auf den aktuellen Stand bringt:

#!/bin/sh
apt autoremove -y && apt autoclean -y && apt update && apt full-upgrade -y && apt autoremove -y && apt autoclean -y
snap refresh

Bei apt wird autoremove und autoclean vor und nach dem Upgrade aufgerufen, um bei Systemen mit wenig Speicherplatz für möglichst viel freien Platz zu sorgen. Technisch unspektakulär, aber eine zuverlässige kleine Routine, die die Systempflege deutlich erleichtert.

Update-Skript für elementaryOS

Unter elementaryOS nutze ich neben der integrierten Paketverwaltung unter anderem auch Snappy und Flatpak. Es ist zwar unschön das sich die zentrale Paketverwaltung dadurch etwas zersplittert, aber leider existieren nicht alle benötigen Pakete in der Paketverwaltung. Bedingt dadurch fand ich den Update-Prozess allerdings etwas umständlich, sodass ich das Ganze in ein kleines Skript gegossen habe:

#!/bin/bash
apt autoremove -y && apt autoclean -y && apt update -y && apt dist-upgrade -y && apt autoremove -y && apt autoclean -y
flatpak update -y
snap refresh 
checkrestart

Mit dem Skript wird die zentrale Paketverwaltung aktualisiert, anschließend Snappy und dann Flatpak. Für die Nutzung des Kommandos checkrestart muss das Paket debian-goodies installiert werden.

Dateien automatisch einzeln einem Git-Repository hinzufügen

Manchmal gibt es sehr spezielle Anforderungen, bei denen sich keine vorgefertigte Lösung findet. In meinem Fall war es die Anforderung eine Menge an Dateien jeweils einzeln einem Git-Repository hinzuzufügen. Herausgekommen ist ein kleines Bash-Skript:

#!/bin/bash

IFS=$'\n'; set -f

for f in $(find . -not -path '*/\.*' -type f); 
do 

  echo "$f";
  git add "$f"
  git commit -m "Add file $f"
  
done

unset IFS; set +f

Das Skript wird im entsprechenden Pfad hinterlegt und sucht anschließend nach allen Dateien, inklusive Unterordnern. Jede gefundene Datei wird anschließend einzeln dem Git-Repository hinzugefügt und anschließend ein Commit für diese Datei erzeugt.

itch.io-Bundle-Spiele automatisiert in die Bibliothek einbinden

Auf itch.io werden unter anderem Indy-Spiele angeboten und verkauft. Vor kurzem wurde auf der Plattform das Bundle Bundle for Racial Justice and Equality verkauft. In diesem Bundle waren über eintausend Spiele enthalten. Diese Spiele tauchen allerdings nicht automatisch in der Bibliothek auf, stattdessen müssen sie auf der separaten Bundle-Seite aufgerufen werden und erscheinen erst dann in der Bibliothek.

Die Einstellungsseite des ScriptAutoRunner

Diesen Prozess von Hand für alle Spiele durchzuführen ist etwas aufwändiger, allerdings kann der Prozess mit einer Chrome-Erweiterung automatisiert werden.

Nachdem der ScriptAutoRunner erfolgreich als Erweiterung installiert wurde, können die Optionen der Erweiterungen über die Extension-Verwaltung und die Erweiterungsoptionen der Erweiterung geöffnet werden. Alternativ kann einfach die direkte URL im Chrome eingegeben und aufgerufen werden:

chrome-extension://gpgjofmpmjjopcogjgdldidobhmjmdbm/options.html

Dort muss nun ein neues Skript angelegt und mit folgendem Inhalt befüllt werden:

if (!window.location.toString().includes("/bundle/download")) { 
  window.history.back(); 
} else if ($('[value="claim"]') && $('[value="claim"]')[0]) {
  $('[value="claim"]')[0].click();
} else {
    $('.next_page')[0].click()
}

Nachdem das Skript wie auf dem Bild aktiviert wurde, kann die URL des Bundles aufgerufen werden und der entsprechende Prozess beginnt. Innerhalb von einigen Minuten werden alle Detailseiten der jeweiligen Spiele aktiviert und diesen landen in der Bibliothek des eigenen itch.io-Kontos. Im Anschluss kann das entsprechende Skript wieder deaktiviert werden.

Dump einer MediaWiki-Installation erstellen

Wer eine Wiki mit der freien Software MediaWiki betreibt und einen Dump derselben erstellen möchte, kann hierfür eines der Werkzeuge nutzen, welches bereits mit der MediaWiki-Installation mitgeliefert wird. Im Ordner maintenance findet sich für diese Zwecke das PHP-Skript dumpBackup.php:

php dumpBackup.php --full > dump.xml

Mit dem Befehl wird die komplette Wiki, inklusive der Historie jeder Seite, gesichert und in den Dump geschrieben. Soll nur der aktuelle Stand der Wiki gesichert werden, so kann hierfür der Parameter current genutzt werden:

php dumpBackup.php --current > dump.xml

Für eine komplette Sicherung der Wiki sollte nicht nur der Dump, sondern auch der Ordner images gesichert werden.