Descompactar arquivos (interface grafica)

Iniciado por Imoogi, 09 de Maio , 2009, 09:15:16 PM

tópico anterior - próximo tópico

0 Membros e 1 Visitante estão vendo este tópico.

Imoogi

Eu tava aki sem fazer nada, então fiz um code com uma intefacezinha grafica para descompactar arquivos,
eu fiz com o xdialog então tera q ter ele instalado, ele suporta arquivos rar, zip, tar e tar.gz
ele ñ ta bem enxutinho, mas da p usar, quaquer erro é só comentar...
flw.



#!/bin/bash
# by Imoogi
# Interface grafica para descompactar arquivos, suporta arquivos rar, zip, tar e tar.gz.


progress='Xdialog title "Unpacking" --progress "Unpacking" 7 60 "1" "100"'

file=$(Xdialog --stdout --backtitle "Select file" --title "Select file" --fselect "$HOME" 0 0)

paste=$(Xdialog --stdout --backtitle "Select paste for save file" --title "Select paste for save file" --dselect "$HOME" 0 0)


if [[ $file == *.zip ]]
then
cd $paste
unzip $file | $progress

elif [[ $file == *.rar ]]
then
cd $paste
unrar e $file | $progress

elif [[ $file == *.tar ]]
then
cd $paste
tar -xf $file | $progress
elif [[ $file == *.tar.gz ]]
then
cd $paste
tar -zxf $file | $progress
else
Xdialog --title "Notice" --msgbox "Notice: File not supported" 7 40
fi

chmod007

#1
Também tava aqui sem fazer nada, dei uma olhada no script e curti.
Bom tralho Imoogi.  ;)
Peguei ele e resolvi fazer umas pequenas modificações.
Quando o usuario clicar em cancelar em algum estágio do prog. ou terminar de descompactar um arquivo, ele vai pra janela final perguntando se ele realmente deseja sair, caso nao queira ele volta pro começo do prog.
E substitui os IFs da vida por um case. Agora tá filé (;
O resultado é esse ai:
#!/bin/bash
# by Imoogi
# Interface grafica para descompactar arquivos, suporta arquivos rar, zip, tar e tar.gz.
# modificado em 30/10/09 por chmod007

while : ; do

progress='Xdialog title "Descompactando" --progress "Descompactando arquivo" 7 60 "1" "100"'

file=$(Xdialog --stdout --backtitle "Escolha o arquivo a ser decompactado" --title "Escolha o arquivo" --fselect "$HOME" 0 0)

[ $? -eq 0 ] && paste=$(Xdialog --stdout --backtitle "Selecione a pasta destino" --title "Selecione a pasta destino" --dselect "$HOME" 0 0)

[ $? -eq 0 ] && case $file in

*.zip )
cd $paste
unzip $file | $progress
        ;;
*.rar )
cd $paste
unrar e $file | $progress
        ;; 
*.tar )
cd $paste
tar -xf $file | $progress
        ;;
*.tar.gz )
cd $paste
tar -zxf $file | $progress
        ;; 
* )
Xdialog --title "Aviso!" --msgbox "Aviso: Arquivo não suportado" 7 40
;;
esac


Xdialog --title "Deseja sair do programa?" --yesno "Deseja realmente sair do programa?" 0 0

[ $? == 0 ] && break

done



E não comentei o código porque tava com preguiça, hahahaha  8)
#!barrabinbarrabash ; )

Imoogi