Flow mit externem Script

Ich krieg einen Workflow mit externem Script nicht zum Laufen.
Kann jemand erkennen, was ich falsch mache?

Der Use Case:

  • mehrseitiges PDF File liegt im Ordner “News”
  • Das PDF File wird getagged mit Tag “info”
    (ich habs auch schon mit Umbenennen statt taggen probiert)
  • Ein externes Script kopiert das PDF ohne die erste Seite in den Ordner “Infos”

Installierte Versionen:

  • NC 21.0.1
  • Workflow external scripts 1.6.0
  • pdftk (zum Schneiden)

Der Flow sieht so aus:

When Tag assigned
→ and File system tag
is tagged with “info”
→ Run script
/bin/openinfo %f

Das Script /bin/openinfo:

  • #!/bin/bash
  • exec 2>&1 /tmp/nc-flow-trace.log
  • set -x
  • /usr/bin/pdftk $1 cat 2-end output $1-new.pdf
  • mv /var/www/nextcloud/data/userabc/files/News/*-new.pdf /var/www/nextcloud/data/userxyz/files/Infos/
  • /usr/bin/rename s/.pdf-new.pdf/.pdf/ /var/www/nextcloud/data/userxyz/files/Infos/*.pdf
  • php /var/www/nextcloud/occ files:scan --all --path= “/var/www/nextcloud/data/userxyz/files/Infos” 2>/dev/null

Manuell im CLI funktioniert dieses Script, aber irgendwie wird es vom Flow nicht getriggert.

Das Logfile /tmp/nc-flow-trace.log bleibt leer und auch keine Fehlermeldung in den Logfiles im data Verzeichnis.

Nach einigen Tests mit logger hab ich gemerkt, dass das mit %n %f nicht funktioniert.
Deshalb hab ichs angepasst in der Originalfrage oben.

Wie ist das Dokument in den Ordner gelangt? Wurde es über den Nextcloud GUI dort abgelegt oder an Nextcloud vorbei dorthin kopiert?

Generell is es immer eine gute Idee die Suchfunktion des Forums zu nutzen um Antworten auf seine Fragen zu erhalten :wink: Gerade zur Verwendung der Workflow external script-App lässt sich über die Suchfunktion einiges finden, wie z.B.

1 Like

Es lag einzig am Script. Die Variablen müssen natürlich in Anführungszeichen gesetzt sein, damit sie interpretiert werden. Ausserdem waren die Optionen beim Befehl files:scan nicht korrekt. Mit diesem Shellscript funktioniert es perfekt:

#!/bin/bash
exec 2>&1 >> /var/www/nextcloud/nc-flow-trace.log
set -x
/usr/bin/pdftk “$1” cat 2-end output “$1-new.pdf”
mv “$1-new.pdf” /var/www/nextcloud/data/userxyz/files/Infos/
/usr/bin/rename s/.pdf-new.pdf/.pdf/ /var/www/nextcloud/data/userxyz/files/Infos/*.pdf
php /var/www/nextcloud/occ files:scan --path=/var/www/nextcloud/data/userxyz/files/Infos

2 Likes