Finder에서 Makefile 실행 해당 명령 (

필자는 종종 컴파일이 시험되는 다양한 프로젝트 (LaTeX 기사, 프로그래밍 자료)의 소스 디렉토리에서 Finder를 사용하여 여행합니다 Makefile. makeFinder에서 직접 좋은 디렉토리에 해당 명령 ( ) 을 호출하는 간단한 방법 (서비스 메뉴, Automator)이 있는지 궁금합니다 (뭔가 마우스 오른쪽 버튼으로 클릭).

OS X 10.8을 실행하고 있습니다.

귀하의 제안에 미리 감사드립니다



답변

다음과 같은 기능을 사용할 수 있습니다.

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를 열고 서비스 템플릿을 선택하고 입력 유형을 입력 안 함으로 설정 한 후 다음과 같이 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는 스크립트가 오류와 함께 종료되면 오류 대화 상자를 표시합니다.


답변

인정, 이것은 서투른 방법이지만 아무것도 아닌 것보다 낫습니다.

makeit.command라는 텍스트 파일을 만들고 한 줄의 텍스트를 넣으십시오.

make

그런 다음 파일을 chomod하십시오 755

chmod 755 makeit.command

make를 실행하려면 해당 폴더로 드래그 / 복사 한 다음 두 번 클릭하십시오.


답변

#!/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각 폴더에 사본이 필요하므로 매우 편리하지 않을 수 있습니다 .


답변

Lauri Ranta의 AppleScript 답변이 마음에 듭니다. 나는 Finder를 사용하여 폴더를 찾고 Finder에서 선택한 디렉토리에 git 저장소를 만들 수있는 그런 일을하고있었습니다.

폴더에서 make 명령을 호출 할 위치를 알 수 있습니다.

Finder의 GUI를 사용하는 것이 좋으며 선택한 디렉토리로 많은 일을하고 싶을 것 같습니다.

선택한 디렉토리에 연결

이 Automator 서비스는 AppleScript 내부의 디렉토리에 대한 모든 종류의 명령을 실행하는 것보다 일반적이며 원하는 쉘 명령을 입력 할 수 있습니다.

— 편집하다 —

죄송합니다. 위의 게시물이 원래 질문에 대한 답변이 아닙니다. 다음은 Finder에서 선택한 디렉토리에서 make 명령을 실행하는 서비스로 저장된 Automator 워크 플로우에 대한 링크입니다.

Make Run

이 새로운 서비스를 사용해 보았는데 때때로 “make”쉘 명령을 수행하고 싶을 수도 있고 “make && make install”쉘 명령을 수행하고 싶을 수도 있기 때문에 마음에 들지 않았습니다. 다른 목표 “만들기”또는 무언가를 만드십시오. 그렇기 때문에 “선택한 디렉토리에 연결”이라는 서비스가 가장 적합하다고 생각했습니다.


답변