8 votos

Ejecutar Makefile desde el Finder

A menudo viajo usando Finder en los directorios de fuentes de varios proyectos (artículos de LaTeX, cosas de programación) para los que la compilación es pilotada por un Makefile . Me preguntaba si hay una manera sencilla (menú de servicio, Automator lo que sea) para invocar el comando correspondiente ( make ) en el directorio bueno directoly desde el Finder (haciendo clic con el botón derecho sobre algo).

Estoy usando OS X 10.8.

Gracias de antemano por sus sugerencias

3voto

Podrías utilizar una función como ésta:

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
}

O guardar una función sólo para el comando cd y utilizar history-search-backward para ejecutar algo como cdf && make && make install .

O abra Automator, elija la plantilla Servicio, establezca el tipo de entrada como sin entrada, y añada una acción Ejecutar AppleScript como esta:

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

Sin el bloque try Automator mostraría un diálogo de error si el script sale con un error.

0voto

Alex Puntos 89

Hay que admitir que es una forma torpe, pero quizá sea mejor que nada:

crear un archivo de texto llamado makeit.command y sólo poner una línea de texto en él:

make

Entonces chomod el archivo 755

chmod 755 makeit.command 

Si quieres ejecutar un make, arrástralo/copialo a esa carpeta y luego haz doble clic en él.

0voto

Kaydell Puntos 229

Me gusta la respuesta de Lauri Ranta sobre AppleScript. Yo estaba trabajando en algo así para poder usar el Finder para localizar una carpeta y crear un repositorio git en un directorio seleccionado en el Finder.

Puedo ver donde puede querer llamar al comando make en una carpeta también.

Me parece que estaría bien poder utilizar la interfaz gráfica de usuario del Finder y que se puedan hacer muchas cosas con el directorio seleccionado.

Conectar con el directorio seleccionado

Creo que este servicio de Automator es más general que emitir cualquier tipo de comando para un directorio dentro del AppleScript y te prepara para introducir cualquier comando de shell que quieras.

--- editar ---

Lo siento, mi post anterior no respondía a la pregunta original. Aquí hay un enlace a un flujo de trabajo de Automator guardado como un Servicio que ejecuta el comando make en el directorio seleccionado en el Finder:

Corre Haz

Probé este nuevo servicio mío y no me gustó porque a veces puedes querer hacer el comando de shell "make" y otras veces puedes querer hacer el comando de shell "make && make install", o puedes querer construir un objetivo diferente "make fullbuild" o algo así. Por eso estaba pensando que un servicio llamado "Connect to Selected Directory" sería lo mejor.

0voto

Igor Zelaya Puntos 2266

Intenté añadir #!/usr/bin/make -f como la primera línea de Makefile y hacerla ejecutable pero no se ejecuta en la carpeta correcta. Así que me he conformado con una solución en la línea de la respuesta de The-Dood.

Abra un terminal y vaya a la carpeta donde tiene su proyecto y Makefile y luego escribe esto:

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

Ahora haciendo doble clic Makeit debe invocar make en la misma carpeta. Puede añadir cualquier otro argumento cuando llame a make o editar Makeit a voluntad.

Esta solución funciona, pero puede no ser muy conveniente porque se necesita una copia de Makeit en cada carpeta.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X