OSX Firefox Übergibt Argumente an den Magnet Protocol Handler

1178
Lionel

Wie öffne ich Magnet-Links in Firefox mit einer Befehlszeilen-App, nämlich Transmission-Remote?

Ich denke, ich muss eine gepackte App erstellen, die Argumente akzeptiert, und Folgendes habe ich bisher getan:

  1. Verwenden Sie Automator, um ein Shellskript mit den folgenden Anweisungen auszuführen:

    transmission-remote -a $@

  2. Speichern Sie das Automator-Skript als Transmission.app

  3. Wählen Sie in Firefox Transmission.app, wenn Sie es für Magnetlinks verwenden

Übergeben Sie jedoch Argumente dafür:

open Transmission.app --args magnet:etc 

Ich gehe davon aus, dass Firefox so etwas wie: tut Transmission.app %s, aber ich kann nicht sagen, wie Firefox Argumente an die Helfer-App weiterleitet. Ich habe auch versucht, ein Wrapper-Shell-Skript zu erstellen und es helper.appohne Erfolg zu benennen .

Kann Firefox auch so etwas als Protokoll-Handler verwenden, wo ich% s übergeben kann?

open Transmission.app --args %s 

BEARBEITEN: Die DS-Antwort funktioniert anscheinend auf Snow Leopard und Lion, aber ich habe immer noch Probleme mit leeren Argumenten, die von Firefox gesendet werden. Ich werde meinen Kommentar auch hier einfügen:

Ich habe folgendes versucht, aber es werden nur Leerzeichen gesendet: echo "$ @" >> ~ / somefile und echo "$ *" >> ~ / somefile mit und ohne Anführungszeichen. Vielleicht sind es meine Firefox-Einstellungen (etwa: config?). Ich bin am 19.0.2 (späteste), OSX 10.8.2, falls sonst jemand in ...

2

1 Antwort auf die Frage

1
DS.

Ich hatte mit der gleichen Frage zu kämpfen. Ich habe es zum Laufen gebracht, und ich denke, Sie haben einen kleinen Schritt verpasst. Anscheinend übergibt Firefox auf dem Mac für seine "Open With" -Anwendungen keine Argumente über Befehlszeilen- oder Umgebungsvariablen oder eine andere Unix-ähnliche Methode. Es verwendet die Launch Services von Mac . Automator kann diese in Befehlszeilenargumente übersetzen. Die folgenden Arbeiten auf Snow Leopard:

  1. Starten Sie Automator und wählen Sie Application für "Wählen Sie eine Vorlage für Ihren Workflow" aus.
  2. Suchen Sie nach der Aktion "Shell-Skript ausführen" und fügen Sie sie per Drag-and-Drop hinzu.
  3. Für das Dropdown-Menü "Eingabe übergeben": Wählen Sie "Als Argumente" <- Ich denke, das ist der Schritt, den Sie vermissen.
  4. Für das "Shell" Dropdown-Menü: Wählen Sie die gewünschte Shell aus (wahrscheinlich / bin / sh, beurteilen Sie Ihre Frage).
  5. Automator gibt Ihnen ein Codebeispiel, Sie möchten jedoch nur das, was Sie bereits haben: transmission-remote -a "$@"(Anführungszeichen erlauben die korrekte Weiterleitung von Argumenten, die Leerzeichen enthalten).
  6. Speichern Sie die App.

Wenn Firefox diese App zum Öffnen von Dateien / Downloads ausführt, übergibt sie diese auf die native Weise von Mac. Automator übersetzt sie in Shell-Argumente und leitet sie an das Shell-Skript weiter transmission-remote.

Hallo DS, danke für die Antwort. Ich habe getan, wie Sie es vorgeschlagen haben, aber es funktioniert nicht bei Mountain Lion. Hier ist mein Automator-Skript mit der Dropdown-Liste "Als Argumente" ausgewählt: http://i.imgur.com/c8u6zia.png Lionel vor 11 Jahren 0
Ich habe jetzt getestet, dass es sowohl für Snow Leopard als auch für Lion funktioniert, aber Muntain Lion nicht zum Testen hat. Versuchen Sie, den Befehl durch `echo Hello" $ @ "world" zu ersetzen und direkt in Automator zu testen. Das einzige, woran ich denken kann, ist, dass die Aktion "Shell-Skript ausführen" in "Options" ein Feld für "Ignoriert die Eingabe dieser Aktion" hat: Stellen Sie sicher, dass dies nicht versehentlich aktiviert ist. DS. vor 11 Jahren 0
I've tried the following but only blanks are sent: `echo "$@" >> ~/somefile` and `echo "$*" >> ~/somefile` with and without quotes. Perhaps it is my Firefox settings (about:config?). I'm on 19.0.2 (latest), OSX 10.8.2 in case anybody else chimes in... Lionel vor 11 Jahren 0
Sie können ohne Firefox testen, indem Sie eine Datei auf Ihr App-Symbol im Finder ziehen und ablegen: Neue Firefox-Versionen sollten auf dieselbe Weise funktionieren (dies gilt für mich). Sie können auch in Automator testen. Tut mir leid, keine 10.8 hier, also kann ich nicht nachsehen. DS. vor 11 Jahren 0