BigBashView, interface gráfica para o seu shell script
Shell script é uma mão na roda, principalmente para alterar arquivos de configuração e criar aplicativos simples, mas interagir com o usuário utilizando apenas os sistemas de dialogo como Kdialog e Zenity muitas vezes é insuficiente. Então conheça o BigBashView e tenha disponível todas as capacidades do QTwebkit para criar interfaces Html/Javascript para seu shell script.
Por: Bruno Gonçalves Araujo
Explicação inicial
É inegável a capacidade do terminal no Linux, mas existem operações que são mais práticas feitas em modo gráfico, além de tornar facilmente utilizável por qualquer usuário, mesmo os com pouca experiência em informática.
No KDE3 tínhamos o Kommander que disponibilizava um sistema para criar interfaces gráficas que se comunicam diretamente com o terminal, porém no KDE4 estava em falta algo realmente eficiente.
Nós do BigLinux precisávamos de uma solução, opções como Kdialog e Zenity são simplistas demais para o que precisamos, por isso criamos o BigBashView, que tem se mostrado muito eficiente, inclusive mais que o Kommander.
Estamos convidando a todos que têm interesse em desenvolver interfaces e programas gráficos para Linux a conhecer essa ferramenta, inclusive de outras distribuições.
Lembro também que os painéis desenvolvidos para o BigLinux podem ser instalados no Kubuntu e também no Ubuntu e seus outros derivados, porém irão instalar também a biblioteca QT4.
O BigBashView permite que o próprio usuário, com alguma experiência em Shell Script, desenvolver seus próprios painéis.
Instalando o BigBashView
Adicione a seguinte linha ao arquivo /etc/apt/sources.list:
deb Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... jaunty main
$ wget Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... -O- | sudo apt-key add -
Recarregue o Synaptic e instale o bigbashview ou então no terminal dê os seguintes comandos:
$ sudo apt-get update
$ sudo apt-get install bigbashview
Uma alternativa para instalar é diretamente pelo código fonte do SVN:
* Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Visão geral
O BigBashView é uma interface para o terminal Bash que renderiza a saída do terminal utilizando QTwebkit.
Uma forma fácil e rápida para criar interfaces em sistemas Linux.
Para quem desenvolve sites em PHP irá notar diversas similaridades, veja um exemplo de "Hello World" para o BigBashView, faça um arquivo com a extensão .sh utilizando qualquer editor de texto e marque-o como executável:
#!/bin/bash
echo "Hello World"
echo "Hello World"
$ bigbashview /home/biglinux/teste.sh
Nesse caso estamos utilizando o arquivo teste.sh na pasta /home/biglinux, é importante lembrar que é preciso utilizar o endereço completo do arquivo para abrir no bigbashview, não basta entrar na pasta /home/biglinux e dar o comando "bigbashview teste.sh".
Então o resultado será:
Veja um exemplo de programa feito utilizando BigBashView:
Portanto tudo que vai para a saída do terminal, ou seja, o que nós vemos ao executar um comando no terminal, será direcionado para o BigBashView, que irá utilizar QTwebkit para renderizar esse código recebido como se fosse um site.
Características importantes
Ao desenvolver utilizando BigBashView lembre dessas características:
1. Os arquivos interpretados devem utilizar extensão .sh e estarem marcados como executáveis.
2. Executar um script sem que o usuário seja enviado para outra página, por exemplo, um botão que abra o navegador Firefox. Utilize arquivos com a extensão .run e também lembre de marcá-los como executáveis, basta criar um link normal utilizando link com a extensão .run.
3. A dica 2 utiliza um exemplo simples, mas deve ser utilizada apenas em casos mais complexos, nesses mais simples utilize o arquivo /usr/share/bigbashview/run.run ,
4. O BigBashView lê o resultado do terminal apenas ao final do script .sh, portanto se um comando no meio fizer parar o script, por exemplo executar o programa kppp, o painel ficará travado até que o kppp seja encerrado, para contornar isso é necessário fazer esse programa se comportar como um daemon, veja o exemplo com o kppp, pode ser adaptado a qualquer outro comando ou programa:
nohup kppp 2> /dev/null > /dev/null &
$ bigbashview /usr/share/bigcontrolcenter/categories/internet/dns/dns.sh -i /usr/share/bigcontrolcenter/categories/internet/dns/dns.sh
6. Especificando o tamanho da janela ao abrir, por padrão a janela possui tamanho 640x480, porém você pode especificar o tamanho das seguintes formas:
* bigbashview -s 800x600 - alterando o 800x600 para o tamanho que preferir;
* bigbashview -w maximized - para a janela abrir maximizada;
* bigbashview -w fullscreen - para abrir em tela cheia.
7. O BigBashView possui problemas para trabalhar com frames, portanto utilize DIV quando necessário.
8. O suporte a método POST não funciona, utilize o método GET.
Crie seu primeiro painel para o BigControlCenter
O BigControlCenter é o Centro de Controle do BigLinux, esse post dará dicas de como criar uma nova opção para esse Centro de Controle.
As separações são feitas nas seguintes categorias: 3d hardware help internet others servers system themes.
Todas estão na pasta: /usr/share/bigcontrolcenter/categories/
Exemplo de como criar seu painel de configuração compatível com o BigControlCenter. Nesse exemplo vamos analisar o painel de DNS, que está na categoria internet, portanto a sua pasta é: /usr/share/bigcontrolcenter/categories/internet/dns
Nessa pasta estão localizados os seguintes arquivos, clique sobre os nomes para ver o código fonte correspondente:
description.sh:
Um arquivo padrão que deve estar em todos os painéis, seu conteúdo será utilizado para que ele seja exibido no BigControlCenter, portanto altere as variáveis apontando para o painel que está criando.
dns.sh:
Esse arquivo pode ter qualquer outro nome que seja fácil de identificar, é o arquivo inicial do painel, o seu nome deve ser especificado no description.sh na variável exec_application.
submit.sh:
É o arquivo que recebe as instruções do dns.sh e aplica a configuração selecionada, exibindo também a tela de configuração aplicada ao usuário, seu nome pode variar, mas é bom manter esse nome por padrão, lembre também que ao alterar o nome desse arquivo é preciso também alterar o endereço do form action no arquivo dns.sh.
Nos arquivos dns.sh e submit.sh já estão inclusos cabeçalho, rodapé e formatações padrões, portanto recomendo que ao desenvolver novos painéis compatíveis com o BigControlCenter, utilize esse pacote como base, comece alterando os valores das variáveis apresentadas nos arquivos e depois crie o que achar necessário.
Dicas e curiosidades
A linha ". /usr/share/bigcontrolcenter/default/theme-categories.sh" importa toda a base do tema, mas ela não é estática, as cores de fundo, texto, link, tamanho e tipo de fonte são importados do tema do KDE4, tornando o painel sempre com uma interface bem integrada ao sistema.
Existem alguns arquivos já inclusos no BigControlCenter que estão disponíveis na pasta /usr/share/bigcontrolcenter/default, entre eles está o Jquery.
Exemplos e mais informações
Para conferir exemplos e mais informações, visite:
Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...
Comment