
Para quem não conhece o Symfony ele é um framework que utiliza a metodologia MVC para facilitar e organizar o desenvolvimento em PHP. Agora que já foram apresentados e depois que hoje descobri os poderes ocultos do bash, resolvi mostrar como fazer o bash auto-completar as opções de comando do symfony. Isso pode ser expandido para qualquer outro comando , se for o caso.
Bem, para verificar quais as opções de comando do symfony basta que você faça :
bash> /<caminhoDoSymfony>/symfony
Ele irá mostrar algo como :
available pake tasks:
clear-cache > clear cached information
clear-controllers > clear controllers
disable > disables an application in a given environment
downgrade > downgrade to a previous symfony release
enable > enables an application in a given environment
fix-perms > fix directories permissions
…
Bem, como explicado em um artigo anterior, o bash possui um comando chamado complete que você pode utilizar para que ele faça auto-complementação de qualquer coisa para você. No caso o que faremos é dizer para ele que toda vez que alguém digitar no bash o comando symfony ele deve mostrar como opções tais e tais palavras. Entenderam ? Ou seja, o complete não é a esperteza em pessoa de analizar o comando e saber quais são as opções e tal. Na verdade o que fazemos é um truque. Dizemos quais palavras que devem aparecer e pronto. Neste caso, ficaria assim :
complete -W “clear-cache clear-controllers disable (…)” symfony
O que estamos indicando para o comando com o opção -W são as opções do comando symfony.
Mas para não termos que digitar tudo isso, podemos utilizar o bash mais uma vez para fazer todo o serviço, fazendo :
complete -W “`symfony | grep ‘>’ | awk ‘{ORS=” “;print $1}’`” symfony
Pronto, isso irá pegar diretamente do comando symfony todas as opções e passar para o comando complete.
Para ficar automático tudo isso, vamos colocar, como root, no arquivo /etc/bash.bashrc as seguintes linhas:
export SYMFONYBIN=/home/diego/_projetos/symfony/data/bin
export PATH=$PATH:$SYMFONYBIN
complete -W “`symfony | grep ‘>’ | awk ‘{ORS=” “;print $1}’`” symfony
Onde a variável SYMFONYBIN que criei (poderia ser qualquer nome) serve para apontar para o diretório bin da instalação do symfony, ou seja, onde o comando está localizado. Em seguida setamos o PATH para que o bash encontre o comando symfony e em seguida usamos o complete. Atenção: Defina corretamente a variável SYMFONYBIN de acordo com a sua instalação!
Pronto, agora para usar o symfony e ter as opções dele, basta digitar symfony e apertar o TAB várias vezes.
Espero que tenham gostado.

2 Responses
Celso
Maio 10th, 2007 at 2:11 pm
1Gostei da dica parabéns
battisti
Junho 30th, 2008 at 10:36 pm
2Ei achei muito legal este lance do complete mas infelizmente eu nao consegui executar este comando no sheel devido ao teu editor de blog ter trocado as aspas simples e duplas.
Poderia me manda por mail a linha correta, ficaria muito agradecido.
[]’s Anselmo Battisti
RSS feed for comments on this post · TrackBack URI
Leave a reply
Significado: Guardar algo para futura consulta. Muito utilizado na informática para arquivar acessos a informações ou serviços para futuras auditorias. Logo, quando dá alguma m*#$%& , o administrador do site vira pro lado, pensa Fu#$*@ e vai logo consultar os últimos logs para ver o que foi que houve.
O ÚltimoLOG surgiu desta idéia de guardar tudo. Os últimos lampejos de criatividade, as últimas idéias, as mais recentes descobertas, ou seja, tudo que for legal para uma futura consulta e o mais importante, tudo em prol de compartilhar o conhecimento. Espero que gostem. ;D
Assine e Acompanhe!
Assine e receba todas as atualizaçõesou Receba por email:
Categorias
Arquivos
Links
Meta
Calendário