Ações do Nautilus somente mostram se arquivo na pasta

1

Eu gostaria de criar algumas ações do nautilus que só serão exibidas se um determinado arquivo estiver na pasta. Estas são ações de localização, um exemplo simples de uma que eu gostaria é uma opção "Make" que executa make na pasta, mas só aparece se essa pasta contiver um makefile. É algo assim possível?

Eu tentei jogar com nomes básicos, mas eles parecem funcionar apenas para itens selecionados. Eu também examinei a opção "Ambiente de Execução" no painel "Ambiente". Eu provavelmente poderia fazer isso usando a opção "Aparece se o comando der resultados 'true'", mas não consigo descobrir como passar o caminho da pasta para esse comando.

    
por Max Ehrlich 02.08.2014 / 04:14

1 resposta

1

Eu consegui resolver isso com muita brincadeira.

Primeiro, descobri que as variáveis padrão podem, de fato, ser passadas para a configuração "Aparece se o comando der a saída" true "'na guia Ambiente usando zenity para ver o que isso estava fazendo. O que nos interessa aqui é %f . Também vale a pena notar que o comando deve produzir "true" sem nenhuma nova linha para seu stdout, em vez de simplesmente usar um código de retorno zero para dizer verdadeiro.

Eu então tentei inserir o seguinte comando:

ls '%f' | grep -q 'Makefile' && echo -n 'true'

O que deve funcionar bem, mas parece que deve haver um comando SINGLE nesse campo, o encanamento e & amp; & amp; não vai funcionar.

Acabei criando o seguinte script que marquei como executável e coloquei no meu diretório bin

#!/bin/bash
# testexists

ls  | grep -q  && echo -n 'true'

Em seguida, coloco o seguinte no campo "Aparece se o comando gerar um campo" true "'

testexists '%f' 'Makefile'

E tudo começou a funcionar (por exemplo, meu comando make só aparece se a pasta contiver um Makefile).

    
por Max Ehrlich 02.08.2014 / 20:25