Uruchom Makefile z Findera

8

Często podróżuję za pomocą Findera w katalogach źródłowych różnych projektów (artykuły LaTeX, rzeczy programistyczne), dla których kompilacja jest pilotowana przez Makefile. Zastanawiałem się, czy istnieje prosty sposób (menu serwisowe, Automator cokolwiek), aby wywołać odpowiednie polecenie ( make) w dobrym katalogu bezpośrednio z Findera (kliknąć coś prawym przyciskiem myszy).

Używam OS X 10.8.

Z góry dziękuję za sugestie

Sebastien Varrette
źródło
Nie jestem pewien co do 100% Findera make, ale możesz otworzyć okno Terminala i wpisać, makea następnie przeciągnąć Makefiledo Terminala, aby skopiować do niego ścieżkę.
2rs2ts
1
@ 2rs2ts, jeśli pójdziesz tą drogą, wpisz make -C przed przeciągnięciem Makefile.
lhf
@ lhf Ach tak, oczywiście.
2rs2ts
1
Dodając do @ 2rs2ts, prawdopodobnie chcesz, aby marka w terminalu lub z edytora wyświetlała komunikaty o błędach
151019

Odpowiedzi:

3

Możesz użyć takiej funkcji:

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
}

Lub zapisz funkcję tylko dla polecenia cd i użyj wyszukiwania historii do tyłu, aby uruchomić coś takiego cdf && make && make install.

Lub otwórz Automator, wybierz szablon Usługi, ustaw typ danych wejściowych na brak danych i dodaj akcję Uruchom AppleScript w następujący sposób:

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

Bez bloku try Automator wyświetli okno dialogowe błędu, jeśli skrypt zakończy działanie z błędem.

Lri
źródło
Możesz także
potokować
0

Przyznaję, że jest to niezdarny sposób, ale może lepszy niż nic:

utwórz plik tekstowy o nazwie makeit.command i po prostu umieść w nim jeden wiersz tekstu:

make

Następnie chomod plik 755

chmod 755 makeit.command 

Jeśli chcesz uruchomić markę, przeciągnij / skopiuj ją do tego folderu, a następnie kliknij dwukrotnie.

The-Dood
źródło
1
W takim przypadku jaki jest bieżący katalog? Nie sądzę, że będzie tam, gdzie jest
plik
0

Próbowałem dodać #!/usr/bin/make -fjako pierwszy wiersz Makefilei uczynić go wykonywalnym, ale nie działa w odpowiednim folderze. Postanowiłem więc znaleźć rozwiązanie zgodne z odpowiedzią The-Dood.

Otwórz terminal i przejdź do folderu, w którym masz projekt Makefile, a następnie wpisz:

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

Teraz podwójne kliknięcie Makeitpowinno wywołać maketen sam folder. Możesz dodawać dowolne inne argumenty podczas wywoływania makelub edycji Makeitdo woli.

To rozwiązanie działa, ale może nie być zbyt wygodne, ponieważ potrzebujesz kopii Makeitw każdym folderze.

lhf
źródło
0

Podoba mi się odpowiedź AppleScript Lauri Ranty. Pracowałem nad czymś takim, aby móc użyć Findera do zlokalizowania folderu i utworzenia repozytorium git w katalogu wybranym w Finderze.

Widzę też, gdzie możesz chcieć wywołać polecenie make w folderze.

Wydaje mi się, że byłoby miło móc korzystać z GUI Findera i że możesz chcieć robić wiele rzeczy z wybranym katalogiem.

Połącz z wybranym katalogiem

Myślę, że ta usługa Automatora jest bardziej ogólna niż wydawanie jakiegokolwiek polecenia dla katalogu wewnątrz AppleScript i przygotowuje cię do wprowadzenia dowolnego polecenia powłoki, które chcesz.

--- edytować ---

Przepraszam, mój powyższy post nie odpowiedział na pierwotne pytanie. Oto łącze do przepływu pracy Automatora zapisanego jako usługa, która uruchamia polecenie make w katalogu wybranym w Finderze:

Uruchom Make

Próbowałem mojej nowej usługi i nie podobało mi się to, ponieważ czasami możesz chcieć wykonać polecenie powłoki „make”, a innym razem możesz chcieć wykonać polecenie powłoki „make && make install”, lub możesz chcieć zbuduj inny cel „zrób pełną wersję” lub coś takiego. Właśnie dlatego myślałem, że usługa o nazwie „Połącz z wybranym katalogiem” będzie najlepsza.

Kaydell
źródło
Jak ta odpowiedź wydaje się być komentarzem ogólnym, ale nie ma dokładnej odpowiedzi
151019
Przepraszam. Chciałem podać dokładną odpowiedź wraz z linkiem do gotowego kodu, który po pobraniu instalowałby się jako usługa.
Kaydell,
Istnieje już wstępnie zainstalowana usługa (Nowy terminal w folderze), która robi to samo, co druga usługa.
Lri
@ „Lauri Ranta” Dziękuję. Na pewno masz wiedzę. Próbowałem usługi „Nowy terminal w folderze”, to nie działało dla mnie, myślę, ponieważ ustawiłem domyślny katalog w moim „.bash_profile”. Z jakiegoś powodu moja usługa: „Połącz z wybranym katalogiem” działa dla mnie, ale usługa: „Nowy terminal w folderze” otwiera Terminal.app, ale nie ustawia poprawnie bieżącego katalogu. Otrzymuję bieżący katalog, który jest ustawiony w moim „.bash_profile”.
Kaydell,