2016-04-17 14 views
0

Ich möchte meinen Bereitstellungsprozess automatisieren (TravisCI verwenden), indem ich die erstellten Artefakte auf meinen Server hochlade, der diese Uploads automatisch registriert und sie dorthin verschiebt, wo sie hin müssen.Mehrere Dateien über CURL hochladen

Dafür ich ein Shellscript geschrieben haben, die nach dem Build-Prozess ausgeführt ist gelungen:

find $TRAVIS_BUILD_DIR/dist/*.tar -type f -exec curl --ftp-create-dirs -T {} -u user:pass ftp://my.server.com/uploads/{} \; 

Die letzte {} (im Zielpfad) führt zu Problemen. In TravisCI sind diese Dateien in der Regel auf dem Weg /home/travis/build/owner/repo/dist, so {} zum Ziel Zugabe wird diese Verzeichnisse als auch erstellen:

uploads/home/travis/build/owner/repo/dist/myartifact.tar

Wenn ich die {} entfernen, ich mit einem Bündel von FTP 553 Fehlern enden. Gibt es eine Möglichkeit für mich, find nur den Dateinamen anstelle des gesamten Pfades zu füllen?

+0

Sie können eine einfache 'for'-Schleife –

Antwort

0

Versuchen mit xargs und Parametern Substitution:

find . -type f | xargs -L 1 bash -c 'curl --ftp-create-dirs -T $1 -u user:pass ftp://my.server.com/uploads/${1##*/}' \; 
Verwandte Themen