Jalankan Makefile dari Finder

8

Saya sering bepergian menggunakan Finder di direktori sumber berbagai proyek (artikel LaTeX, program pemrograman) yang kompilasinya diujicobakan oleh a Makefile. Saya bertanya-tanya apakah ada cara sederhana (menu Layanan, Automator apa pun) untuk menjalankan perintah yang sesuai ( make) dalam direktori directoly yang baik dari Finder (klik kanan sesuatu).

Saya menjalankan OS X 10.8.

Terima kasih sebelumnya atas saran Anda

Sebastien Varrette
sumber
Tidak yakin tentang 100% Finder make-ing, tetapi, Anda bisa membuka jendela Terminal dan mengetik makelalu seret Makefileke Terminal untuk menyalin lintasan ke sana.
2rs2ts
1
@ 2rs2ts, jika Anda pergi dengan cara ini, ketik make -C sebelum menyeret Makefile.
lhf
Oh, ya, tentu saja.
2rs2ts
1
Menambahkan ke @ 2rs2ts Anda mungkin ingin make di terminal atau dari editor untuk melihat pesan kesalahan
user151019

Jawaban:

3

Anda dapat menggunakan fungsi seperti ini:

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
}

Atau simpan fungsi hanya untuk perintah cd dan gunakan pencarian-sejarah-mundur untuk menjalankan sesuatu seperti cdf && make && make install.

Atau buka Automator, pilih templat Layanan, setel jenis input ke tanpa input, dan tambahkan tindakan Jalankan AppleScript seperti ini:

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

Tanpa blok coba Automator akan menampilkan dialog kesalahan jika skrip keluar dengan kesalahan.

Lri
sumber
Anda juga dapat mem-pipe stdout dan std untuk melihat kesalahan atau setidaknya meminta di mana log kesalahan tersebut
user151019
0

Diakui, ini cara yang canggung tapi mungkin lebih baik daripada tidak sama sekali:

buat file teks bernama makeit.command dan cukup masukkan satu baris teks ke dalamnya:

make

Kemudian chomod file 755

chmod 755 makeit.command 

Jika Anda ingin menjalankan make, seret / salin ke folder itu dan kemudian klik dua kali.

The-Dood
sumber
1
Dalam hal apa direktori saat ini? Saya tidak berpikir itu akan menjadi tempat Makefile berada dan jadi make mungkin akan gagal
user151019
0

Saya mencoba menambahkan #!/usr/bin/make -fsebagai baris pertama Makefiledan membuatnya dapat dieksekusi tetapi tidak berjalan di folder yang benar. Jadi saya sudah sepakat untuk solusi di sepanjang garis jawaban oleh The-Dood.

Buka terminal dan pergi ke folder tempat Anda memproyeksikan dan Makefile, lalu ketik ini:

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

Sekarang mengklik dua kali Makeitharus memanggil makefolder yang sama. Anda dapat menambahkan argumen lain saat menelepon makeatau mengedit Makeitsesuka hati.

Solusi ini berfungsi tetapi mungkin tidak terlalu nyaman karena Anda memerlukan salinan Makeitdi setiap folder.

lhf
sumber
0

Saya suka jawaban AppleScript Lauri Ranta. Saya sedang mengerjakan hal seperti itu bagi diri saya sendiri untuk dapat menggunakan Finder untuk menemukan folder dan membuat repositori git di direktori yang dipilih dalam Finder.

Saya bisa melihat di mana Anda mungkin ingin memanggil perintah make pada folder juga.

Bagi saya sepertinya akan menyenangkan jika dapat menggunakan GUI Pencari dan Anda mungkin ingin melakukan banyak hal dengan direktori yang dipilih.

Hubungkan ke Direktori yang Dipilih

Saya pikir Layanan Automator ini lebih umum daripada mengeluarkan perintah apa pun untuk direktori di dalam AppleScript dan itu membuat Anda siap untuk memasukkan perintah shell apa pun yang Anda inginkan.

--- sunting ---

Maaf, posting saya di atas tidak menjawab pertanyaan awal. Berikut ini tautan ke alur kerja Automator yang disimpan sebagai Layanan yang menjalankan perintah make pada direktori yang dipilih di Finder:

Jalankan Make

Saya mencoba layanan baru ini dan saya tidak menyukainya karena kadang-kadang Anda mungkin ingin melakukan perintah shell "make" dan di lain waktu Anda mungkin ingin melakukan perintah shell "make && make install", atau Anda mungkin ingin membangun target yang berbeda "make fullbuild" atau sesuatu. Itu sebabnya saya berpikir bahwa layanan yang disebut "Connect to Selected Directory" akan menjadi yang terbaik.

Kaydell
sumber
Bagaimana ini menjawab pertanyaan yang tampaknya merupakan komentar umum tetapi tidak ada jawaban yang pasti
user151019
Maafkan saya. Saya bermaksud memberikan jawaban yang pasti dengan tautan ke kode selesai yang ketika diunduh akan diinstal sebagai Layanan.
Kaydell
Sudah ada layanan pra-instal (Terminal Baru di Folder) yang melakukan hal yang sama dengan layanan kedua Anda.
Lri
@ "Lauri Ranta" Terima kasih. Anda benar-benar berpengetahuan luas. Saya mencoba Layanan "Terminal Baru di Folder" tidak berfungsi untuk saya, saya pikir karena saya menetapkan direktori default di ".bash_profile" saya. Untuk beberapa alasan, Layanan saya: "Sambungkan ke Direktori Terpilih" berfungsi untuk saya, tetapi Layanan: "Terminal Baru di Folder" tidak membuka Terminal.app, tetapi tidak mengatur direktori saat ini dengan benar. Saya mendapatkan direktori saat ini yang diatur dalam ".bash_profile" saya.
Kaydell