makefile mit rsync?

OP #5027724
Lesenswert?

Hallo zusammen,
ich brauche mal kurz Hilfe beim Erstellen eines Makefiles:

Ich möchte alle Dateien mit der Endung *uni aus einem Ordner rsyncen und 
die Files nachträglich von unicode (Endung uni) nach utf8 (Endung utf8) 
konvertieren. Später möchte ich weitere Aktionen auf den Files ausführen

Natürlich soll die codetranslation und die nachfolgendenen Operationen 
nur auf den geupdateten Files stattfinden.

Ich habe den rsync in ein separates shell-script ausgelagert, da hier 
komplexe Datei-Umbenennung stattfinden

bisher habe ich
1
RAWPATH=/mypath
2
UNIPATTERN=$(wildcard $RAWPATH/*.uni)
3
UTF8PATTERN=$(UNIPATTERN:.uni=.utf8)
4

5
all: download convert
6

7
convert: $(UTF8PATTERN)
8

9
download:
10
   ./download.sh
11

12
$(UTF8PATTERN): $(UNIPATTERN)
13
    mytranscommand -i $< -o $@

download geht, aber anscheinend wird UTF8PATTERN nicht richtig erzeugt
vieleicht kann mir jemand nen Tipp geben?

Danke
Schorsch

Nachtrag:
Es ist anscheinend nicht trivial eine Liste mit geupdateteten Files von 
rsync zu erhalten. Falls jemand weiß wie das geht, könnte ich eventuel 
sogar auf das Makefile verzichten
#5027836
Lesenswert?

Georg T. schrieb:
> Nachtrag:
> Es ist anscheinend nicht trivial eine Liste mit geupdateteten Files von
> rsync zu erhalten. Falls jemand weiß wie das geht, könnte ich eventuel
> sogar auf das Makefile verzichten

Was reicht dir am durch "--out-format=%n" produzierten Output nicht aus? 
Falls du auch Directories mit überträgst mußt du die noch ausfiltern 
(dank des trailing "/" trivial), aber ansonsten sollte das eigentlich 
exakt die benötigte Liste liefern.
OP #5027863
Lesenswert?

Ralf D. schrieb:
> Was reicht dir am durch "--out-format=%n" produzierten Output nicht aus?

Hallo,
ja damit habe ich auch schon angefangen rumzuspielen. Ich kann das 
leider erst morgen wieder ausprobieren...

wenn ich rsync -av foo bar mache, steht da gar kein Dateiname, sondern 
nur x bytes transfered etc. Mit --out-format hatte sich nichts dabei 
geändert.

Wie müsste denn deiner Meinung ein korrekter rsync befehl heißen, der 
eine liste erzeugt?

etwa:
1
rsync -<option> ${A}/*.uni ${B}/ | grep <something> >> mylog

thx
Georg

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren