Eigene Aktionen in .app mitliefern

fabiopigi

Aktives Mitglied
Thread Starter
Dabei seit
03.06.2005
Beiträge
2.714
Reaktionspunkte
253
Hi

Ich will für eine Homepage ein Droplet mit einem Automatorscript machen.
Ziel ist es, dass man einfach Bilddateien auf das Programm ziehen kann (Autormator -> Speichern unter -> Programm.app) und diese Bilder skaliert werden, und direkt auf einen FTP Server gespeichert werden.

Lokal funktioniert das auch gut, aber eben weil ich zuerst die "Upload to FTP"-Aktion installiert habe.
Wenn ich es exportiere als .app, wird diese Aktion nicht mitgeliefert, und bei einem anderen Computer ist diese dann nicht verfügbar.

Kann ich irgendwie eine Aktion ins .app-Bundle einbinden?
 
danke, aber ich glaube das geht nicht.
Ich müsste die Aktion /Library/Automator/Upload to FTP.action/ mitliefern.
naja, ich bin jetzt noch etwas am umschauen, ob man das evt per Applescript machen könnte, also den upload nach FTP

trotzdem danke
 
Ich würde Dir empfehlen, das Hochladen auf den FTP Server mit "normalen" Unix Bordmitteln zu erledigen. Die stehen auf jedem Mac zur Verfügung und Du brauchst keine Kopfstände mit Automator zu machen.

Zum Beispiel funktioniert so etwas:
Code:
echo put /pfad/zur/Bilddatei | ftp ftp://benutzername:passwort@ftp.server.de/zielpfad/
Das kann man mit "do shell script" in AS ganz einfach umsetzen.

HTH
Gruß
maceis
 
  • Gefällt mir
Reaktionen: fabiopigi
Danke, super.
Ich werde es weiterhin nich mit Automator machen.
Das sollte eben eine Art "Dropplet" wo ein Benutzer dann ohne weitere nötigen Angaben Fotos auf einen FTP Server übertragen kann.
Die Fotos sollen zuvor eben noch verkleinert und umbenannt werden.

Aber danke, das Kommando ist gut, kann ich dann in ein AppleScript einbetten.
 
Was mir gerade einfällt.
Auch mit dem Kommando 'curl' kann man ganz leicht Dateien auf einen FTP Server hochladen (Schalter -T, Details s. manpages).
Dann entfällt das etwas plumpe echo in die Pipe.

Gruß
maceis
 
Hi Maceis

Bin gerade dabei, mit AppleScript und xCode zu experimentieren, und bin begeistert davon.

Was ich bereits machen konnte ist, einen Login zu machen, die Daten an einen Server zu schicken um zu verifizieren und das Resultat wieder mit AppleScript auswerten.
Den "Login Custom View" ausblenden und einen neuen Custom View einblenden.

Funktioniert super und ist viel einfacher als ich gedacht habe (wenn man bedenkt, dass ich bis gestern Mittag nichtmal wusste, dass man AppleScript, xCode und Interface Builder zusammen nutzen kann).

Ich habe noch zwei Fragen:

Kann man irgendwie den Fortschritt vom Upload herausfinden?
(ich denke allerdings, dass wird nicht gehen, oder nur mit AppleScriptObj)

Wenn ich eine Progressbar habe, wie kann ich den "current value" auf zB 34 (von 0-100) setzen? Ich habe bis jetzt erst geschafft, die minimum und maximal value zu ändern, nicht aber die current.
 
curl gibt standardmäßig den Fortschritt aus:
Code:
 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
 48  828k    0     0   48  397k      0   115k  0:00:07  0:00:03  0:00:04  135k
 
Wenn ich eine Progressbar habe, wie kann ich den "current value" auf zB 34 (von 0-100) setzen? Ich habe bis jetzt erst geschafft, die minimum und maximal value zu ändern, nicht aber die current.
Das machst Du in AppleScript mit einer repeat-Schleife, in der
  • der aktuelle Status eines Ablaufs ermittelt wird
  • dieser Status ins Verhältnis zum Endergebnis gerechnet wird (Anzahl Bytes zur Gesamtsummme, oder % im Verhältnis zum Endergebnis, oder Zeitintervall im Verhältnis zur Gesamtzeit, oder...
  • dieses Verhältnis in ein Wert übersetzt wird, der sich in Deinem Fortschrittsbalken abbilden läßt
Klingt komplizierter als es wirklich ist. In den Xcode-Examples findest Du Beispiele zum Thema.

Ciao
Farid
 
Danke.
Ich habe bis jetzt den FTP Upload Code noch nicht eingebaut, bin erstmal soweit, dass ich entweder per DragnDrop oder per "öffnen Dialog" mehrere Fotos auswählen kann und die Pfade als Liste angegeben sind.
Ist es also so, dass ein do shell script nicht das Script anhält, bis es fertig ist?
Falls ja wäre das super :)

Wenn ich die übertragene Dateimenge rausbekomme ist die halbe Arbeit schon getan :)

Danke an euch beide
 
Ist es also so, dass ein do shell script nicht das Script anhält, bis es fertig ist?
Ich habe zu diesem Zweck immer " > /dev/null 2>&1 &" an meine Shell-Kommandos angehängt (im Web geklaut ohne 100%ig zu verstehen, wie das funktioniert :) )
Wenn ich mich recht entsinne, wird so
a) der Standardoutput der Shell umgeleitet und
b) das Kommando im Hintergrund ausgeführt.

Good scripting
Farid
 
...
a) der Standardoutput der Shell umgeleitet,
b die Fehlerausgabe auf die Standardausgabe umgeleitet und
c) das Kommando im Hintergrund ausgeführt.
 
  • Gefällt mir
Reaktionen: chebfarid
Zurück
Oben Unten