Führen Sie Makefile im Finder aus

8

Ich reise oft mit Finder in den Quellverzeichnissen verschiedener Projekte (LaTeX-Artikel, Programmiermaterial), für die die Zusammenstellung von a gesteuert wird Makefile. Ich habe mich gefragt, ob es eine einfache Möglichkeit gibt (Servicemenü, Automator, was auch immer), den entsprechenden Befehl ( make) in der Direktverzeichnisliste von Finder aufzurufen (Rechtsklick auf etwas).

Ich verwende OS X 10.8.

Vielen Dank im Voraus für Ihre Vorschläge

Sebastien Varrette
quelle
Sie sind sich nicht sicher über 100% Finder make-ing, aber Sie können ein Terminalfenster öffnen und eingeben und makedann das Makefilein das Terminal ziehen, um den Pfad dorthin zu kopieren.
2rs2ts
1
@ 2rs2ts, wenn Sie diesen Weg gehen, geben Sie ein, make -C bevor Sie das ziehen Makefile.
lhf
@lhf Ah ja natürlich.
2rs2ts
1
Wenn Sie @ 2rs2ts hinzufügen, möchten Sie wahrscheinlich, dass die Marke in einem Terminal oder von einem Editor die Fehlermeldungen
anzeigt

Antworten:

3

Sie könnten eine Funktion wie diese verwenden:

fmake() {
  cd "$(osascript -e 'tell application "Finder"
      POSIX path of (target of Finder window 1 as alias)
  end tell' 2> /dev/null)"
  make && make install
}

Oder speichern Sie eine Funktion nur für den Befehl cd und verwenden Sie die Verlaufssuche rückwärts, um so etwas auszuführen cdf && make && make install.

Oder öffnen Sie Automator, wählen Sie die Dienstvorlage aus, setzen Sie den Eingabetyp auf "Keine Eingabe" und fügen Sie eine Aktion zum Ausführen von AppleScript wie folgt hinzu:

try
    tell application "Finder"
        POSIX path of (target of Finder window 1 as alias)
    end tell
    tell application "Terminal"
        do script "cd " & quoted form of result & " && make && make install"
        activate
    end tell
end

Ohne den Try-Block würde Automator einen Fehlerdialog anzeigen, wenn das Skript mit einem Fehler beendet wird.

Lri
quelle
Sie können auch stdout und std
weiterleiten
0

Zugegeben, das ist ein ungeschickter Weg, aber vielleicht besser als nichts:

Erstellen Sie eine Textdatei mit dem Namen makeit.command und fügen Sie nur eine Textzeile ein:

make

Dann chomod die Datei 755

chmod 755 makeit.command 

Wenn Sie ein Make ausführen möchten, ziehen Sie es in diesen Ordner und doppelklicken Sie darauf.

The-Dood
quelle
1
Was ist in diesem Fall das aktuelle Verzeichnis? Ich glaube nicht, dass es dort sein wird, wo sich das Makefile befindet, und daher wird das Make wahrscheinlich fehlschlagen
user151019
0

Ich habe versucht, #!/usr/bin/make -fals erste Zeile hinzuzufügen Makefileund es ausführbar zu machen, aber es wird nicht im richtigen Ordner ausgeführt. Also habe ich mich für eine Lösung entschieden, die der Antwort von The-Dood entspricht.

Öffnen Sie ein Terminal, gehen Sie zu dem Ordner, in dem Sie Ihr Projekt haben, und geben Sie Folgendes ein Makefile:

cat <<EOF > Makeit
make -C `dirname $_`
echo 'Press enter to continue'
read
EOF
chmod +x Makeit

Durch Doppelklicken Makeitsollte nun makederselbe Ordner aufgerufen werden. Sie können beliebige andere Argumente hinzufügen, wenn Sie nach Belieben aufrufen makeoder bearbeiten Makeit.

Diese Lösung funktioniert, ist jedoch möglicherweise nicht besonders praktisch, da Sie Makeitin jedem Ordner eine Kopie benötigen .

lhf
quelle
0

Ich mag Lauri Rantas AppleScript-Antwort. Ich habe an so etwas für mich gearbeitet, um mit dem Finder einen Ordner zu finden und ein Git-Repository in einem im Finder ausgewählten Verzeichnis zu erstellen.

Ich kann sehen, wo Sie den Befehl make möglicherweise auch für einen Ordner aufrufen möchten.

Es scheint mir, dass es schön wäre, die Benutzeroberfläche des Finders verwenden zu können, und dass Sie möglicherweise viele Dinge mit dem ausgewählten Verzeichnis tun möchten.

Stellen Sie eine Verbindung zum ausgewählten Verzeichnis her

Ich denke, dass dieser Automator-Dienst allgemeiner ist als die Ausgabe eines Befehls für ein Verzeichnis innerhalb des AppleScript und Sie bereit macht, den gewünschten Shell-Befehl einzugeben.

--- bearbeiten ---

Es tut mir leid, mein Beitrag oben hat die ursprüngliche Frage nicht beantwortet. Hier ist ein Link zu einem Automator-Workflow, der als Dienst gespeichert ist und den Befehl make in dem im Finder ausgewählten Verzeichnis ausführt:

Führen Sie Make aus

Ich habe diesen neuen Dienst von mir ausprobiert und es hat mir nicht gefallen, weil Sie manchmal den Shell-Befehl "make" ausführen möchten und manchmal den Shell-Befehl "make && make install" ausführen möchten oder möchten baue ein anderes Ziel "make fullbuild" oder so. Aus diesem Grund dachte ich, dass ein Dienst namens "Mit ausgewähltem Verzeichnis verbinden" am besten wäre.

Kaydell
quelle
Wie beantwortet dies die Frage, es scheint allgemeine Kommentare zu sein, aber keine genaue Antwort
user151019
Es tut mir Leid. Ich wollte eine genaue Antwort mit einem Link zum fertigen Code geben, der beim Herunterladen als Service installiert wird.
Kaydell
Es gibt bereits einen vorinstallierten Dienst (New Terminal at Folder), der dasselbe tut wie Ihr zweiter Dienst.
Lri
@ "Lauri Ranta" Danke. Sie sind sicher kenntnisreich. Ich habe den Dienst "Neues Terminal im Ordner" ausprobiert, der bei mir nicht funktioniert hat. Ich glaube, ich habe in meinem ".bash_profile" ein Standardverzeichnis festgelegt. Aus irgendeinem Grund funktioniert mein Dienst: "Mit ausgewähltem Verzeichnis verbinden" für mich, aber der Dienst: "Neues Terminal im Ordner" öffnet Terminal.app, stellt jedoch das aktuelle Verzeichnis nicht richtig ein. Ich erhalte ein aktuelles Verzeichnis, das in meinem ".bash_profile" festgelegt ist.
Kaydell