O que eu gostaria de fazer é iniciar programas externos a partir de links em um site local.
Eu defini um manipulador de protocolo personalizado no firefox definindo as seguintes variáveis em about: config
network.protocol-handler.external.myprotocol;true
network.protocol-handler.warn-external.myprotocol;true
Isso faz com que o firefox abra uma caixa de diálogo 'iniciar aplicativo' quando clico em um link no formulário myprotocol:///path_to_program_I_want_to_run
e, em seguida, navego até o shell script que desejo usar e digito ao firefox para executá-lo. Infelizmente, o roteiro não parece estar sendo executado.
Eu configurei as permissões de arquivo para o 777, para que o Firefox não tenha nenhum problema em executá-lo
O script de shell originalmente continha apenas a linha
A ideia é que o caminho do link seria passado como o primeiro argumento e seria imediatamente executado como um programa. Isso funcionou bem quando eu mesmo executei o script usando comandos como
#./run_program.sh gedit
ou
#./run_program.sh /home/ciaran/test_program
O script agora para fins de teste contém apenas a linha
echo "testing" > /testing/file.txt
em que 'testing' é um diretório com 777 permissões. Observe também que /testing/
está localizado na raiz do meu sistema de arquivos (embora eu não consiga lembrar por que o coloquei lá!), Então eu não acabei de me misturar entre os caminhos relativo e absoluto
Novamente, isso é executado perfeitamente quando eu o executo no terminal e file.txt
é criado no local correto. Com o firefox, porém, eu tenho a opção de escolher um aplicativo para rodar, eu escolho aquele script de shell, e ele não parece fazer nada.
file.txt
não é criado, embora não haja problemas de permissão que eu possa ver. Então, o firefox parece não estar rodando o script.
Eu também tentei alterar meu about:config
para conter
network.protocol-handler.expose.camara;true
e
network.protocol-handler.app.camara;path/to/shell/script
sem sucesso