wizard.pngEasy Channel

O Easy Channel é o instalador de pacotes especiais (complexos, restritos, fontes) do Epidemic GNU/Linux.

easychannel.jpg

Projetado para ser graficamente bem estruturado e ao mesmo tempo flexível, ele foi desenvolvido em C++, sob a forma de um módulo do KControl (Centro de Controle do KDE) e utiliza os conceitos de um Script Runner, para permitir que novas tarefas sejam acrescentadas à sua interface, por meio de um simples script bash.

Embora tenha sido desenvolvido para ser um instalador de pacotes especiais, o Easy Channel pode ser usado para as mais diversas tarefas, como, por exemplo a configuração ou a manutenção do sistema.

Na verdade, tudo que pode ser feito por um script bash pode ser feito por uma tarefa do Easy Channel e é exatamente aí que reside todo o seu poder.

Desenvolvimento comunitário

Objetivando incentivar, ainda mais, o processo de desenvolvimento comunitário do Epidemic foi adicionada à nova versão do Easy Channel uma via de integração com o Ecommunity.

Ao clicar no nome do autor de uma das tarefas do Easy Channel (item 4 no screenshot acima), é aberta uma janela do Ecommunity com os dados pessoais do autor e uma listagem de tdoas as suas contribuições para o Epidemic, dando-lhe, dessa forma, os devidos créditos.

ecommunity.jpg


Criando uma tarefa para o Easy Channel

Criar novas tarefas para o Easy Channel é realmente algo muito simples e pode ser feito por qualquer pessoa que possua algum conhecimento de bash script.

Cada tarefa do Easy Channel é composta por três arquivos:

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 <font face> e <img style> 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 tradicionalCoamdo do Easy Channel
wget eecdownload
apt-get updateeecaptupdate
apt-get sourceeecaptsource
apt-get installeecaptinstall
apt-get remove --purgeeecaptremove
apt-get autoremoveeecapautoremove
apt-get cleaneecaptclean
module-assistant updateeecmaupdate
module-assistant prepareeecmaprepare
module-assistant geteecmaget
module-assistant buildeecmabuild
module-assistant installeecmainstall

Comandos específicos do Easy Channel


eecpmcheckVerifica seexiste algum gerenciador de pacotes sendo utilizado

eecnetcheckVerifica 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)
messageMensagem que será exibida
maxprogressProgresso máximo para uma fase de execução do script

eecstate progress
Atualiza o progresso parcial de uma fase de execução do script
progressprogresso parcial (1 a 100)

eecinfo info
Exibe uma informação em uma caixa de diálogo
infoInformação a ser exibida

eecerror error
Exibe uma mensagem de erro em uma caixa de diálogo
errorMensagem de erro a ser exibida

eecquestion question
Exibe uma pergunta em uma caixa de diálogo
questionPergunta a ser exibida

eecdownload url
Baixa um arquivo da internet
urlurl do arquivo a ser baixado

eecaptaddsrc src
Insere uma fonte de pacotes no arquivo sources.list
srcFonte 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
srcPacote fonte a ser instalado

eecaptinstall package
packagePacote debian aser instado

eecaptremove package
Remove um pacote debian
packagePacote 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
packagePacote a ser baixado

eecmabuild package
Compila um pacote com o Module-Assistant
packagePacote a ser compilado

eecmainstall package
Instala um pacote com o Module-Assistant
packagePacote 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 eectasks@epidemiclinux.org, 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

Sobre o Epidemic

  • Home
  • Screenshots
  • Download
  • Gravação
  • Instalação
  • Programas

Projetos

  • Epidemic-Installer
  • Easy Channel
  • EpdBootsplash

Comunidade

  • Forum
  • Wiki
  • Contato

Busca

CLlogo.jpg nvu.png ibiblio_logo.gif
Epidemic GNU/Linux é um projeto desenvolvido por James Benedito de Oliveira.