FinderからMakefileを実行する


8

私はFinderを使用して、さまざまなプロジェクト(LaTeXの記事、プログラミングなど)のソースディレクトリに移動し、そのコンパイルをMakefilemakeFinderから直接、適切なディレクトリで対応するコマンド()を呼び出す(何かを右クリックする)簡単な方法(サービスメニュー、Automatorなど)があるかどうか疑問に思いました。

OS X 10.8を実行しています。

あなたの提案を事前に感謝します


Finderが100%かどうかはmakeわかりませんが、ターミナルウィンドウを開いて入力し、ターミナルにをmakeドラッグしMakefileてパスをコピーできます。
2rs2ts 2013年

1
@ 2rs2ts、この方法で移動する場合は、をmake -C ドラッグする前に入力してくださいMakefile
lhf 2013年

@lhfああ、もちろん。
2rs2ts 2013年

1
@ 2rs2tsに追加すると、おそらくターミナルまたはエディターでmakeを実行してエラーメッセージを表示できます
user151019

回答:


3

次のような関数を使用できます。

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
}

または、cdコマンドだけの関数を保存し、history-search-backwardを使用してのようなものを実行しますcdf && make && make install

または、Automatorを開き、サービステンプレートを選択して、入力タイプを入力なしに設定し、次のようなRun AppleScriptアクションを追加します。

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

tryブロックがないと、スクリプトがエラーで終了した場合、Automatorはエラーダイアログを表示します。


stdoutとstdをパイプして、エラーを表示するか、少なくともエラーログの場所を確認することもできます
user151019

0

これは不器用な方法ですが、おそらく何もしないよりはましです。

makeit.commandという名前のテキストファイルを作成し、それに1行のテキストを挿入します。

make

次に、ファイル755を選択します

chmod 755 makeit.command 

makeを実行する場合は、そのフォルダーにドラッグ/コピーしてからダブルクリックします。


1
その場合、現在のディレクトリは何ですか?Makefileがある場所だとは思わないので、makeはおそらく失敗します
user151019

0

#!/usr/bin/make -fの最初の行として追加しMakefileて実行可能にしてみましたが、正しいフォルダで実行されません。だから、私はThe-Doodの答えに沿った解決策を見つけました。

ターミナルを開き、プロジェクトを作成したフォルダーに移動してMakefile、次のように入力します。

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

ダブルクリックすると、同じフォルダMakeitが呼び出さmakeれます。呼び出しmakeまたは編集時に他の引数を自由に追加できますMakeit

このソリューションは機能しますがMakeit、各フォルダにのコピーが必要になるため、あまり便利ではありません。


0

Lauri RantaのAppleScriptの回答が好きです。私はFinderを使用してフォルダを見つけ、Finderで選択したディレクトリにgitリポジトリを作成できるようにするために、自分自身でそのようなことに取り組んでいました。

フォルダーのmakeコマンドを呼び出す場所も確認できます。

FinderのGUIを使用できると便利だと思うし、選択したディレクトリを使用して多くのことを実行したいと思うかもしれません。

選択したディレクトリに接続

このAutomatorサービスは、AppleScript内のディレクトリに対してあらゆる種類のコマンドを発行するよりも一般的であり、必要なシェルコマンドを入力する準備ができていると思います。

---編集---

申し訳ありませんが、上の私の投稿は元の質問に回答しませんでした。以下は、Finderで選択されたディレクトリでmakeコマンドを実行するサービスとして保存されたAutomatorワークフローへのリンクです。

メイクを実行

私はこの新しいサービスを試しましたが、シェルコマンド「make」を実行したい場合もあれば、シェルコマンド「make && make install」を実行したい場合や、別のターゲット「make fullbuild」などをビルドします。だから「Connect to Selected Directory」というサービスがいいと思いました。


どのようにこの答え、一般的なコメントが、無正確な答えであるように思われる質問
user151019

申し訳ありません。ダウンロードするとサービスとしてインストールされる完成したコードへのリンクを正確に回答するつもりでした。
Kaydell 2013年

2番目のサービスと同じことをするプリインストールサービス(新しいターミナルのフォルダー)が既にあります。
Lri

@「ラウリ・ランタ」ありがとうございます。あなたは確かに知識があります。私は "New Terminal at Folder"サービスを試してみましたが、機能しませんでした。 "。bash_profile"にデフォルトディレクトリを設定したためです。何らかの理由で、私のサービス:「選択したディレクトリに接続」は機能しますが、サービス:「フォルダの新しいターミナル」はTerminal.appを開きますが、現在のディレクトリを正しく設定しません。「.bash_profile」に設定されている現在のディレクトリを取得します。
Kaydell 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.