Ejecutar Makefile desde el Finder

8

A menudo viajo usando Finder en los directorios de origen de varios proyectos (artículos de LaTeX, programación) para los cuales la compilación está piloteada por un Makefile . Me preguntaba si existe una forma sencilla (menú Servicio, Automator, lo que sea) para invocar el comando correspondiente ( make ) en el directorio de directorio correcto desde Finder (haga clic con el botón derecho del ratón en algo).

Estoy ejecutando OS X 10.8.

Gracias de antemano por tus sugerencias

    
pregunta Sebastien Varrette 11.06.2013 - 23:49

4 respuestas

3

Puedes usar una función como esta:

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 guarda una función solo para el comando cd y usa la búsqueda hacia atrás del historial para ejecutar algo como cdf && make && make install .

O abra Automator, elija la plantilla de servicio, establezca el tipo de entrada como sin entrada y agregue 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 cuadro de diálogo de error si el script se cierra con un error.

    
respondido por el user495470 12.06.2013 - 12:25
0

Admitido, esta es una manera torpe pero quizás mejor que nada:

cree un archivo de texto llamado makeit.command y simplemente ponga una línea de texto en él:

make

Luego, acomodar el archivo 755

chmod 755 makeit.command 

Si desea ejecutar una marca, arrástrela / cópiela a esa carpeta y luego haga doble clic en ella.

    
respondido por el The-Dood 12.06.2013 - 12:20
0

Intenté agregar #!/usr/bin/make -f como la primera línea de Makefile y hacerlo ejecutable pero no se ejecuta en la carpeta correcta. Así que me conformé con una solución según la respuesta de The-Dood.

Abra un terminal y vaya a la carpeta donde tiene el proyecto y Makefile , luego escriba esto:

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

Ahora, hacer doble clic en Makeit debería invocar make en la misma carpeta. Puedes agregar cualquier otro argumento al llamar a make o editar Makeit a voluntad.

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

    
respondido por el lhf 19.06.2013 - 13:13
0

Me gusta la respuesta de AppleScript de Lauri Ranta. Estaba trabajando en tal cosa para poder usar el Finder para ubicar una carpeta y crear un repositorio git en un directorio seleccionado en el Finder.

También puedo ver dónde puede llamar al comando make en una carpeta.

Me parece que sería bueno poder utilizar la GUI del Finder y que es posible que desee hacer muchas cosas con el directorio seleccionado.

Conectar al directorio seleccionado

Creo que este servicio de Automator es más general que emitir cualquier tipo de comando para un directorio dentro de AppleScript y lo prepara para ingresar cualquier comando de shell que desee.

--- editar ---

Lo siento, mi publicación anterior no respondió 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:

Run Make

Probé este nuevo servicio mío y no me gustó porque a veces es posible que desee ejecutar el comando de shell "make" y en otras ocasiones que desee realizar el comando de shell "make & & make install" , o es posible que desee crear un objetivo diferente "make fullbuild" o algo así. Por eso pensaba que lo mejor sería un servicio llamado "Conectarse al directorio seleccionado".

    
respondido por el Kaydell 19.06.2013 - 10:12

Lea otras preguntas en las etiquetas