|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Arquivo | Função |
| nome-do-arquivo.eec | Armazena informações sobre a tarefa a ser realiada |
| nome-do-arquivo.html | Descreve de forma detalhada o que é realizado pela tarefa |
| nome-do-arquivo.sh | É o responsável pela realização da tarefa |
Vejamos, por exemplo, a tarefa do Easy Channel responsável pela instalaçao do Skype, uma conhecida aplicação VoIP.
Ela é composta dos arquivos skype.eec, skype.html e skype.sh.
O arquivo skype.eec
Este arquivo é, na verdade, um simples arquivo texto, que possui a seguinte estrutura:
| Autor=james Task=Install Skype Task[pt_BR]=Instala o Skype TaskIcon=skype Section=Network Section[pt_BR]=Internet SectionIcon=network Installed=no |
Cada um dos campos do arquivo skype.eec, esta relacionado com um item da interface gráfica do Easy Channel mostrada no screenshot acima e possui uma finalidade específica:
| Campo | Item | Função |
| Autor | 4 | A função principal deste campo é levar para a interface gráfica do Easy Channel o nome do autor da tarefa, permitindo, desta forma, sua integração com o Ecommunity. |
| Task | 2 | É uma breve descrição da tarefa (por padrão em inglês) |
| Task[pt_BR] | 2 | Utilizado para fins de internacionalização, é a breve descrição da tarefa no idioma para o qual a tarefa foi traduzida. (no caso, para português do Brasil). O Easy channel seleciona automaticamente o idioma do campo Task que será mostrado em sua interface gráfica, de acordo com a linguagem definida no KControl, o Centro de Controle do KDE (e do Epidemic). |
| TaskIcon | 1 | Serve para selecionar o ícone que representará a tarefa na interface do Easy Channel. |
| Section | 6 | Descreve a seção a que pertence a tarefa (por padrão em inglês). |
| Section[pt_BR] | 6 | Utilizado para fins de internacionalização, é a breve descrição da tarefa no idioma para o qual a tarefa foi traduzida. (no caso, para português do Brasil). O Easy channel seleciona automaticamente o idioma do campo Task que será mostrado em sua interface gráfica, de acordo com a linguagem definida no KControl. |
| SectionIcon | 5 | Serve para selecionar o ícone que representará, na interface do Easy Channel, a seção a que pertence a tarefa. |
| Installed | 3 | Informa se uma determinada tarefa encontra-se instalada ou não. |
O arquivo skype-en_US.html
O arquivo skype-en_US corresponde ao item 5na interface gráfica do Easy Channel. Sua função é exibir uma informação detalhada do que efetivamente é feito por uma determinada tarefa.
Na verade, para tornar possível a internacionalização do Easy Channel, deve existir um arquivo .html para cada idioma em que a tarefa for traduzida, como, por exemplo o arquivo skype-pt_BR.html.
O Easy Channel se encarrega de selecionar o arquivo .html que será exibido na sua área de informação, de acordo com o idioma selecionado para o sistema, no KControl.
| <a name="top"> <h2><img style="float: left;" alt="icon" src="/pics/skype.png" />Skype</h2> <hr> <img alt="screenshot" src="/shots/skype-shot.png"> <p> <font face="Verdana, Arial, Helvetica, sans-serif" size="3"> Skype is an VoIP application that allows hold free calls of voice between users and, for a small cost, held Skype links to fixed or mobile phones. <p> Although gratuitous, Skype is not a free software, which has not been previously installed on the Epidemic CD. <p> <b>WARNING:</b> The license for use of Skype is available at the site below and the installation of the Skype by Easy Channel implies in his acceptance. <p> <img style="float: left;" alt="link" src="/pics/link.png" /> <a href="http://www.skype.com">www.skype.com</a> </font> |
Embora possa parecer um pouco complicado, à primeira vista, a a edição deste arquivo é, na verdade, bem simples e pode ser feita com um editor de texto qualquer, como, por exemplo, o Kwrite.
Apenas os campos em negrito precisam ser modificados para uma nova tarefa.
| Campo | Item | Função |
| skype.png | 7 | Utilizado para escolha do ícone que representará a tarefa na área de informação do Easy Channel. |
| Skype | 8 | Corresponde ao título que irá ser exibido na área de informação do Easy Channel. |
| skype-shot.png | 9 | É opicional e serve para exibir, na área de informação, um pequeno screenshot da aplicação que será instalada pela tarefa. |
| Campo entre as tags e | 10 | Corresponde à descrição propriamente dita da tarefa. |
| http://www.skype.com | 11 | Link para uma página na qual o usuário poderá encontrar mais informações sobre a aplicação instalada pela tarefa. |
O arquivo skype.sh
Este é o rquivo que contém o código que efetivamente realiza a tarefa.
Ele é composto por apenas duas funções script_install(), onde deve ser inserido o código bash de instalação da tarefa e script_remove(), responsável pela remoção da tarefa.
A princípio, toda tarefa do Easy Channel deve conter um código de remoção que permita ao usuário voltar á situação anterior caso algo aconteça de errado durante o processo de instalação.
Ressalte-se que apenas o código em negrito no interior das funções script_install() e script_remove() é que precisa realmente ser alterado para a criação de uma nova tarefa.
| #!/bin/bash . lib/libeec # Check if a package manager is running eecpmcheck # Check if network is avaliable eecnetcheck # Fixes broken packages apt-get -f install dpkg --configure -a script_install() { # Insert your install code where eecstate "install:`gettext \"Installing Skype...\"`:5" eecprogress 100 eecstate "progress:`gettext \"Enabling unofficial repository...\"`:10" eecaptaddsrc deb http://download.skype.com/linux/repos/debian/ stable non-free eecprogress 100 eecstate "progress:`gettext \"Updating database...\"`:20" eecaptupdate eecprogress 100 eecstate "progress:`gettext \"Installing skype .deb package...\"`:75" eecaptinstall skype eecprogress 100 eecstate "progress:`gettext \"Disabling unofficial repository...\"`:80" eecaptrmsrc eecprogress 100 eecstate "progress:`gettext \"Updating database...\"`:90" eecaptupdate eecprogress 100 eecstate "installed:`gettext \"Installed\"`:100" eecprogress 100 } script_remove() { # Insert your remove code where eecstate "remove:`gettext \"Removing Skype...\"`:20" eecprogress 100 eecstate "progress:`gettext \"Removing skype .deb package...\"`:70" eecaptremove skype eecprogress 100 eecstate "progress:`gettext \"Removing unnecessary .deb packages...\"`:90" eecapautoremove eecprogress 100 eecstate "removed:`gettext \"Removed\"`:100" eecprogress 100 } case "$1" in install) script_install ;; remove) script_remove ;; *) ;; esac |
A rigor, qualquer comando ou estrutura aceita pelo bash poderia ser usada no arquivo frostwire.sh, mas como mencionado nos comentários deste arquivo, existem alguns poucos comandos específiocos do Easy Channel que devem sempre ser utilizados em substituição aos seus congêneris com o intuito de permitir uma comunicação efetiva entre o script que está sendo executado e a interface gráfica do Easy Channel.
| Coamando tradicional | Coamdo do Easy Channel |
| wget | eecdownload |
| apt-get update | eecaptupdate |
| apt-get source | eecaptsource |
| apt-get install | eecaptinstall |
| apt-get remove --purge | eecaptremove |
| apt-get autoremove | eecapautoremove |
| apt-get clean | eecaptclean |
| module-assistant update | eecmaupdate |
| module-assistant prepare | eecmaprepare |
| module-assistant get | eecmaget |
| module-assistant build | eecmabuild |
| module-assistant install | eecmainstall |
Comandos específicos do Easy Channel
| eecpmcheck | Verifica seexiste algum gerenciador de pacotes sendo utilizado |
| eecnetcheck | Verifica se existe uma conexão ativa com a internet |
| eecprogress "icon:`gettext \"message\"`:maxprogress" | |
| Exibe uma mensagem na janela de progresso do Easy Channel | |
| icon | ícone da mensagem (install, installed, remove, removed ou progress) |
| message | Mensagem que será exibida |
| maxprogress | Progresso máximo para uma fase de execução do script |
| eecstate progress | |
| Atualiza o progresso parcial de uma fase de execução do script | |
| progress | progresso parcial (1 a 100) |
| eecinfo info | |
| Exibe uma informação em uma caixa de diálogo | |
| info | Informação a ser exibida |
| eecerror error | |
| Exibe uma mensagem de erro em uma caixa de diálogo | |
| error | Mensagem de erro a ser exibida |
| eecquestion question | |
| Exibe uma pergunta em uma caixa de diálogo | |
| question | Pergunta a ser exibida |
| eecdownload url | |
| Baixa um arquivo da internet | |
| url | url do arquivo a ser baixado |
| eecaptaddsrc src | |
| Insere uma fonte de pacotes no arquivo sources.list | |
| src | Fonte a ser adicionada ao arquivo sources.list |
| eecaptrmsrc |
| Remove todas as fontes de pacotes adicionadas pelo Easy Channel |
| eecaptupdate |
| atualiza as listas de pacotes debian |
| eecaptsource src | |
| Instala um pacote debian | |
| src | Pacote fonte a ser instalado |
| eecaptinstall package | |
| package | Pacote debian aser instado |
| eecaptremove package | |
| Remove um pacote debian | |
| package | Pacote debian a ser removido |
| eecapautoremove |
| Remove pacotes debian desnecessários |
| eecaptclean |
| Limpa o cache de pacotes debian |
| eecmaupdate |
| Atualiza as listas de pacotes disponíveis do Module-Assistant |
| eecmaprepare |
| Prepara o Module-Assistant para a compilação de módulos |
| eecmaget package | |
| Faz o download de um pacote a ser compilado com o Module-Assistant | |
| package | Pacote a ser baixado |
| eecmabuild package | |
| Compila um pacote com o Module-Assistant | |
| package | Pacote a ser compilado |
| eecmainstall package | |
| Instala um pacote com o Module-Assistant | |
| package | Pacote a ser instalado |
| eeckdeusers |
| Lista todos os usuários KDE do sistema |
Testando uma nova tarefa
Para testar uma nova tarefa, copie os arquivos criados para as seguintes diretórios:
| Arquivo | Diretório |
| nome-do-arquivo.eec | /usr/share/apps/easychannel/tasks |
| nome-do-arquivo.sh | usr/share/apps/easychannel/scripts |
| nome-do-arquivo.html | usr/share/apps/easychannel/info |
Abra o Easy Channel e clique em atualizar, para que a nova tarefa seja carregada e tente instalá-la e removê-la.
Se tudo correr bem, mande os arquivos para This e-mail address is being protected from spambots. You need JavaScript enabled to view it , para que, se aprovada, seja a tarefa acrescentada ao repositório oficial do Easy Channel, podendo assim ser utilizada por todos os demais usuários.
Código fonte
O Easy Channel, assim como todos os demias programas desenvolvidos pela equipe do Epidemic, são livres, disponibilizados sob os termos da GPL.
O código fonte do Easy Channel pode ser obtido no link abaixo:
| Easy Channel 0.2 |
| http://codigolivre.org.br/frs/download.php/6166/easychannel-0.2.tar.gz |







