3 # #############################################################################################################
9 # Descrição: Uma interface simples, usando shell sript e zenity, para o pacman.
10 # Gerenciador de pacotes do Archlinux. Este programa foi baseado nos
11 # códigos do "PacGUI", criado por "jorchube". Obrigado! "jorchube".
13 # Autor: smarch < silveriomm@bol.com.br >
17 # #############################################################################################################
20 mkdir
-p $HOME/.zpacman
22 TERMINAL
=gnome-terminal
24 ################ SOBRE ########################################################################################
25 ###############################################################################################################
28 msg
="ZPacman, é uma interface gráfica,
29 baseada em Zenity, para o pacman,
30 gerenciador de pacotes do Archlinux.
31 É muito intuitiva, e fácil de usar.
32 É um programa totalmente livre!
33 Você pode usar, modificar e distribuir
35 Porém o autor não se responsabiliza,
36 por qualquer dano que o programa
37 possa causar ao seu sistema.\n
38 Portanto use por sua conta e risco!\n
39 Espero que lhe seja útil!\n\n
40 silveriomm@bol.com.br\n
45 --title="Sobre o ZPacman..." \
50 # ################### MENU PRINCIPAL ##########################################################################
51 ###############################################################################################################
54 MENU
=$
(zenity
--list \
55 --title="ZPacman 2010.06" \
56 --text="\n MENU PRINCIPAL\n\n\n Selecione a operação desejada" \
57 --height=300 --width=350 \
58 --column="" --column="" \
60 "1" " Instalar programa" \
61 "2" " Remover programa" \
62 "3" " Localizar programa" \
63 "4" " Atualizar sistema" \
64 "5" " Outras operações" \
65 "6" " Sobre este aplicativo...")
79 ##################### INSTALAR ################################################################################
80 ###############################################################################################################
82 function menu_instalar
{
83 instalar
=$
(zenity
--list \
89 --text=" Escolha a operação desejada\n" \
90 "S" "Instalar programa pelo repositório" \
91 "U" "Instalar programa local" \
92 "Ss_S" "Procurar e instalar programa pelo repositório") || menu
98 Ss_S
) busca_instala
;;
103 # ----------------- Instalar programa pelo repositório --------------------------------------------------------
108 --title="Instalar programa pelo repositório" \
110 --text="Digite o nome (ou nomes) dos programas que deseja instalar")
116 $TERMINAL -t "Instalando programa" -x sudo pacman
-S $INSTALA
121 # ------------- Instalar programa local -----------------------------------------------------------------------
123 function instala_local
{
126 --title="Selecione o arquivo que deseja instalar")
132 $TERMINAL -t "Instalar programa local" -x sudo pacman
-U $local
137 # -------------- Localizar e instalar programa ---------------------------------------------------------------
139 function busca_instala
{
140 BUSCA
=$
(zenity
--entry \
141 --title="Pesquisar no repositório" \
143 --text="Digite uma palavra-chave, ou o nome de um programa que deseja encontrar")
149 RESP_BUSCA
=$
(pacman
-Ss $BUSCA)
150 RESP_BUSCA_SORT
=$
(echo $RESP_BUSCA |
grep / |
tr -s [:blank
:] "\n" |
grep / |
tr -s "/" " ")
152 PEGAR
=$
(zenity
--list \
154 --title="Resultados encontrados para: $BUSCA " \
155 --text="Selecione os programas que deseja instalar" \
156 --width=500 --height=500 \
158 --column=Pacote
$RESP_BUSCA_SORT)
163 PEGAR_INSTALAR
=$
(echo $PEGAR |
tr "|" " ")
164 $TERMINAL -t "Instalando programa" -x sudo pacman
-S $PEGAR_INSTALAR
170 ##################### REMOVER PROGRAMA ########################################################################
171 ###############################################################################################################
173 function menu_remover
{
174 MENU_REMOVER
=$
(zenity
--list \
175 --title="Remover programa" \
181 --text=" Escolha a operação desejada" \
182 "1" "Remover programa" \
183 "2" "Localizar e remover programa") || menu
185 case $MENU_REMOVER in
193 # -------------------- Remover programa -----------------------------------------------------------------------
198 --title="Remover programa" \
200 --text="Digite o nome (ou nomes) dos programas que deseja remover")
206 $TERMINAL -t "Remover programa" -x sudo pacman
-Rsc $REMOVER
211 # -------------- Localizar e remover programa -----------------------------------------------------------------
213 function busca_remove
{
214 BUSCA
=$
(zenity
--entry \
215 --title="Pesquisar no repositório" \
217 --text="Digite uma palavra-chave, ou o nome de um programa que deseja remover")
223 RESP_BUSCA
=$
(pacman
-Ss $BUSCA)
224 RESP_BUSCA_SORT
=$
(echo $RESP_BUSCA |
grep / |
tr -s [:blank
:] "\n" |
grep / |
tr -s "/" " ")
226 PEGAR
=$
(zenity
--list \
228 --title="Resultados encontrados para: $BUSCA " \
229 --text="Selecione os programas que deseja remover" \
230 --width=350 --height=500 \
232 --column=Pacote
$RESP_BUSCA_SORT)
237 PEGAR_REMOVER
=$
(echo $PEGAR |
tr "|" " ")
238 $TERMINAL -t "Localizar e remover programa" -x sudo pacman
-Rsc $PEGAR_REMOVER
244 ################### LOCALIZAR PROGRAMA ########################################################################
245 ###############################################################################################################
250 --title="Localizar programa" \
252 --text="Digite uma palavra-chave, ou o nome do programa que deseja encontrar")
258 resp_localiza
=$
(pacman
-Ss $localiza)
260 echo "$resp_localiza" |
262 --width=500 --height=500 \
263 --title="Resultados encontrados para: $localiza "
268 #################### ATUALIZAR SISTEMA ########################################################################
269 ###############################################################################################################
271 function menu_atualiza
{
274 --title="Atualizar sistema" \
279 --text=" Escolha a operação desejada" \
280 "Syu" "Atualizar sistema" \
281 "Sy" "Atualizar somente a base de dados" \
282 "Syy" "Forçar a atualização da base de dados") || menu
286 Syu
) $TERMINAL -t "Atualizando sistema" -x sudo pacman
-Syu
289 Sy
) $TERMINAL -t "Atualizando base de dados" -x sudo pacman
-Sy
292 Syy
) $TERMINAL -t "Atualizando base de dados" -x sudo pacman
-Syy
297 ################## OUTRAS OPERAÇÕES ###########################################################################
298 ###############################################################################################################
300 function menu_outros
{
301 MENU_OUTROS
=$
(zenity
--list \
302 --title="Outras operações" \
303 --text=" Escolha a operação desejada" \
310 "2" "Informações de programas instalados" \
311 "3" "Lista de pacotes orfãos" \
312 "4" "Criar e instalar pacote" \
313 "5" "Editar /etc/rc.conf" \
314 "6" "Editar /etc/pacman.conf" \
315 "7" "Editar /etc/pacman.d/mirrorlist" \
316 "8" "Restaurar arquivos" \
317 "9" "Desbloquear base de dados") || menu
333 # ------------- Limpar cache ----------------------------------------------------------------------------------
338 --title="Limpar cache" \
339 --text=" Escolha a operação desejada" \
344 "Sc" "Limpar pacotes antigos do cache" \
345 "Scc" "Apagar todos os pacotes do cache") || menu_outros
349 Sc
) $TERMINAL -t "Limpando cache" -x sudo pacman
-Sc
351 Scc
) $TERMINAL -t "Limpando cache" -x sudo pacman
-Scc
357 # ----------- Informações de programas instalados -------------------------------------------------------------
362 --title="Informações de programas instalados" \
363 --text="Digite o nome do programa, para saber mais informações sobre o mesmo")
369 RESP_INFO
=$
(pacman
-Qi $INFO)
372 --width=500 --height=500 \
373 --title="Informações do programa: $INFO "
378 # --------------- Lista de pacotes orfãos ---------------------------------------------------------------------
381 pacman
-Qdt | zenity
--title="Lista de pacotes orfãos" --text-info
385 # ------------ Criar e instalar pacote ------------------------------------------------------------------------
391 --title="Selecione o diretório onde o arquivo PKGBUILD está localizado")
397 $TERMINAL -t "Criar e instalar pacote" --working-directory=$PKGDIR -x makepkg
-s
398 if [ ! $
(ls $PKGDIR |
grep pkg.
tar.xz
) ]
402 --title="Criar e instalar pacote" \
403 --text="Hove um erro ao criar o pacote, nenhum pacote foi criado"
407 --title="Criar e instalar pacote" \
408 --text="Você gostaria de instalar o novo pacote?"
413 $TERMINAL -t "Criar e instalar pacote" -x sudo pacman
-U $PKGDIR/*.pkg.
tar.xz
415 --title="Criar e instalar pacote" \
416 --text="O Pacote foi criado e instalado com sucesso"
423 # ------------ Editar /etc/rc.conf --------------------------------------------------------------------------------
429 --title="ATENÇÃO! ISTO PODE DANIFICAR O SISTEMA!" \
430 --text="Tem certeza? Editar o arquivo /etc/rc.conf agora?")
436 cp /etc
/rc.conf
$HOME/.zpacman
/rc.conf.backup
&&
437 gksu gedit
/etc
/rc.conf
439 --title="Editar /etc/rc.conf" \
441 --text="O Arquivo /etc/rc.conf\n foi modificado com sucesso!"
446 # ------------ Editar /etc/pacman.conf ----------------------------------------------------------------------------
452 --title="ATENÇÃO! ISTO PODE DANIFICAR O SISTEMA!" \
453 --text="Tem certeza? Editar o arquivo /etc/pacman.conf agora?")
459 cp /etc
/pacman.conf
$HOME/.zpacman
/pacman.conf.backup
&&
460 gksu gedit
/etc
/pacman.conf
462 --title="Editar /etc/pacman.conf" \
464 --text="O Arquivo /etc/pacman.conf\n foi modificado com sucesso!"
469 # ------------ Editar /etc/pacman.d/mirrorlist ---------------------------------------------------------------
475 --title="ATENÇÃO! ISTO PODE DANIFICAR O SISTEMA!" \
476 --text="Tem certeza? Editar o Arquivo /etc/pacman.d/mirrorlist agora?")
482 cp /etc
/pacman.d
/mirrorlist
$HOME/.zpacman
/mirrorlist.backup
&&
483 gksu gedit
/etc
/pacman.d
/mirrorlist
485 --title="Editar /etc/pacman.d/mirrorlist" \
487 --text="O Arquivo /etc/pacman.d/mirrorlist\n foi modificado com sucesso!"
492 # ------------------- Restaurar arquivos ----------------------------------------------------------------------
494 function menu_restaura
{
495 MENU_RESTAURA
=$
(zenity
--list \
496 --title="Restaurar arquivos" \
497 --text=" Escolha a operação desejada" \
503 "1" "Restaurar /etc/rc.conf" \
504 "2" "Restaurar /etc/pacman.conf" \
505 "3" "Restaurar /etc/pacman.d/mirrorlist") || menu_outros
507 case $MENU_RESTAURA in
510 2) rest_pacmanconf
;;
516 # ------------ Restaurar /etc/rc.conf -------------------------------------------------------------------------
518 function rest_rconf
{
519 REST_RCONF
=$
(zenity \
522 --title="Restaurar arquivo /etc/rc.conf" \
523 --text="Tem certeza? Você quer restaurar o arquivo /etc/rc.conf agora?")
529 gksu
cp $HOME/.zpacman
/rc.conf.backup
/etc
/rc.conf
530 zenity
--info --title="Restaurar arquivo" --text="O arquivo /etc/rc.conf foi restaurado\ncom sucesso"
535 # ------------------------ Restaurar /etc/pacman.conf ---------------------------------------------------------
537 function rest_pacmanconf
{
538 REST_PACMANCONF
=$
(zenity \
541 --title="Restaurar arquivo /etc/pacman.conf" \
542 --text="Tem certeza? Você Quer Restaurar o Arquivo\n /etc/pacman.conf agora?")
548 gksu
cp $HOME/.zpacman
/pacman.conf.backup
/etc
/pacman.conf
549 zenity
--info --title="Restaurar arquivo" --text="O arquivo /etc/pacman.conf foi restaurado\ncom sucesso"
554 # ------------------------ Restaurar /etc/pacman.d/mirrorlist -------------------------------------------------
556 function rest_mirror
{
560 --title="Restaurar Arquivo /etc/pacman.d/mirrorlist" \
561 --text="Tem certeza? Você Quer Restaurar\no Arquivo /etc/pacman.d/mirrorlist Agora?"
567 gksu
cp $HOME/.zpacman
/mirrorlist.backup
/etc
/pacman.d
/mirrorlist
568 zenity
--info --title="Restaurar Arquivo" --text="O arquivo /etc/pacman.d/mirrorlist\nfoi restaurado com sucesso"
573 # -------------- Desbloquear base de dados --------------------------------------------------------------------
577 --title="Desbloquear base de dados" \
578 --text="Gostaria de desbloquear a base de dados agora?"
584 gksu
rm /var
/lib
/pacman
/db.lck
585 zenity
--info --title="Desbloquear base de dados" --text="A base de dados foi desbloqueada"