Esegui Makefile dal Finder

8

Viaggio spesso usando il Finder nelle directory sorgente di vari progetti (articoli LaTeX, materiale di programmazione) per cui la compilazione è pilotata da un Makefile . Mi chiedevo se c'è un modo semplice (menu Servizio, Automator qualunque) per invocare il comando corrispondente ( make ) nella buona directory directoly da Finder (fare clic con il pulsante destro del mouse su qualcosa).

Sto usando OS X 10.8.

Grazie anticipatamente per i tuoi suggerimenti

    
posta Sebastien Varrette 11.06.2013 - 23:49
fonte

4 risposte

3

Potresti usare una funzione come questa:

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 salva una funzione solo per il comando cd e usa history-search-backward per eseguire qualcosa come cdf && make && make install .

Oppure apri Automator, scegli il modello di servizio, imposta il tipo di input su nessun input e aggiungi un'azione Esegui AppleScript come segue:

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

Senza il blocco try Automator mostrerebbe una finestra di errore se lo script termina con un errore.

    
risposta data 12.06.2013 - 12:25
fonte
0

Ammesso, questo è un modo goffo ma forse meglio di niente:

crea un file di testo chiamato makeit.command e inserisci una sola riga di testo:

make

Quindi aggiungi il file 755

chmod 755 makeit.command 

Se vuoi eseguire una marca, trascina / copia in quella cartella e poi fai doppio clic.

    
risposta data 12.06.2013 - 12:20
fonte
0

Ho provato ad aggiungere #!/usr/bin/make -f come prima riga di Makefile e renderlo eseguibile ma non viene eseguito nella cartella corretta. Quindi ho optato per una soluzione sulla falsariga della risposta di The-Dood.

Apri un terminale e vai alla cartella in cui hai il progetto e Makefile , quindi digita questo:

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

Ora facendo doppio clic su Makeit dovrebbe invocare make sulla stessa cartella. Puoi aggiungere altri argomenti quando chiami make o modifica Makeit a piacere.

Questa soluzione funziona ma potrebbe non essere estremamente comoda perché hai bisogno di una copia di Makeit in ogni cartella.

    
risposta data 19.06.2013 - 13:13
fonte
0

Mi piace la risposta AppleScript di Lauri Ranta. Stavo lavorando su questa cosa per essere in grado di usare il Finder per localizzare una cartella e creare un repository git in una directory selezionata nel Finder.

Posso vedere dove puoi chiamare il comando make in una cartella.

Mi sembra che sarebbe bello poter usare la GUI del Finder e che potresti voler fare un sacco di cose con la directory selezionata.

Connessione alla directory selezionata

Penso che questo servizio di Automator sia più generale dell'emissione di qualsiasi tipo di comando per una directory all'interno di AppleScript e ti prepara per inserire qualsiasi comando di shell che desideri.

--- edit ---

Mi dispiace, il mio post precedente non ha risposto alla domanda originale. Ecco un collegamento a un flusso di lavoro di Automator salvato come servizio che esegue il comando make nella directory selezionata nel Finder:

Esegui Marca

Ho provato questo mio nuovo servizio e non mi è piaciuto perché a volte potresti voler eseguire il comando di shell "make" e altre volte potresti voler eseguire il comando di shell "make & make install" , o potresti voler creare un target diverso "make fullbuild" o qualcosa del genere. Ecco perché stavo pensando che un servizio chiamato "Connetti alla directory selezionata" sarebbe il migliore.

    
risposta data 19.06.2013 - 10:12
fonte

Leggi altre domande sui tag