git-ftp-teaserIn der Firma in der ich arbeite, wollen wir unseren Workflow verbessern. Konkret ist uns das live-schalten einer Seite ein Dorn im Auge. Hier kann und geht viel zu viel schief.

Eine Datei vergessen hoch zu laden, eine config-Datei überschrieben. Gerade auf einem Live-System ist das natürlich problematisch.

Die erste Idee war das ganze mittels git zu lösen. Nur kann nicht jeder Hoster ssh und git gleich gar nicht. Wir mussten uns also den kleinsten gemeinsamen Nenner suchen und der ist FTP. (Man kann von FTP halten was man möchte, aber wirklich jeder  Hoster  bietet das an)

Hier kommt Git-FTP ins Spiel. Diese Erweiterung gibt die Möglichkeit mit dem Befehl

git ftp push

die Dateien auf einen FTP-Server zu kopieren.

Bei der Evaluierung von Uberspace als Preview-Server hatte ich nun das Problem, dass die Standard-Installationsroutine von git-ftp Root-Rechte benötigt und diese habe ich nicht.

Die Lösung ist ganz einfach.

Installation

Man wechsle in das Verzeichnis ~/bin und holt sich erst einmal den Quellcode von Git-FTP:

git clone http://github.com/resmo/git-ftp.git ./git-ftp-source

anschließend wechselt man in den Master branch:

cd ./git-ftp-source && git checkout master

In der Installationsanleitung käme jetzt ein sudo make install, aber dieser Befehl kopiert einfach nur das Binary nach /opt/local/bin und da darf man nicht hineinschrieben. Unser installationsbefehl sieht also ein wenig anders aus:

ln -s ./git-ftp-source/git-ftp ./git-ftp

Das War es schon.

Zur Erklärung

Die Installation ist  eigentlich nur das kopieren des Binaries in einen Ordner, der in der Pfad-Umgebungsvariable steht (bei Uberspace zum Beispiel ~/bin)

Der symbolische Link hilft nur dabei, dass wir das Binary direkt aufrufen können.