Script ebook-manager
Publicado por Pedro Fernandes (última atualização em 07/09/2022)
[ Hits: 2.462 ]
Homepage: https://github.com/PedroF37
Download 1662392690.ebook-manager (versão 2)
Script que é uma cópia do meu script 'ebook-cli', mas usando o zenity.
No meu github: "https://github.com/PedroF37/Bash-Scripts", tem uma Pasta "EbookManager" onde tem um icone (certo que é feinho kk) e um arquivo .desktop se quiser usar.
Só lembre de trocar os "/home/pedro/etc..." por "/home/seu-usuario/..".
Modifique o arquivo .desktop como quiser, eu coloquei tudo para ir para o HOME:
script - $HOME/bin
icone - $HOME/.local/share/icons
.desktop - $HOME/.local/share/applications
Não misturo minhas aventuras com as do root...
Versão 2 - Enviado por Pedro Fernandes em 05/09/2022
Changelog: Adicionada opção de adicionar livros de qualquer pasta do HOME do usuário para a Biblioteca do PC, ao invés de puder apenas manipular as Bibliotecas
do PC e do dispositivo ebook-reader. Variável 'FileFormat' na secção 'PARÂMETROS', contém a lista dos formatos de livros
suportados. Adicione mais a gosto e preferência.
Download 1662392690.ebook-manager
#!/bin/bash # ################################################################################# # # SCRIPT ebook-manager # AUTOR Pedro Fernandes # E-MAIL pedrobfernandes37@gmail.com # DATA 30-07-2022 # ################################################################################# # # DESCRIÇÃO # # Script que usa o zenity para gerenciar livros digitais entre PC e # dispositivo ebook-reader. # Cópia gráfica do meu script de nome: 'ebook-cli' # ################################################################################# # # VERSÂO/CHANGELOG: # ### 1.0 - 01-08-2022: Script completado e testado. ### Minimamente funcional. # ################################################################################ # # DEPENDÊNCIAS: # # zenity # ################################################################################# # ##### PARÂMETROS ##### # PcLibrary=$HOME/Biblioteca/ Books=$(mktemp $HOME/.Livros.XXXXXX) ConfigFile=$HOME/.EbookManager.conf # ################################################################################# # ##### FUNÇÕES ##### # function RemoveTemp { rm -rf $Books return } # function RecordConfig { echo "Device = $Device DeviceLibrary = $DeviceLibrary PcLibrary = $PcLibrary" >> $ConfigFile [ ! -d $PcLibrary ] && mkdir $PcLibrary [ ! -d $DeviceLibrary ] && mkdir $DeviceLibrary zenity --info --title "Configurações" \ --text \ "Configuraçõoes salvas com sucesso em: $ConfigFile. Rode novamente o script para manipular as Bibliotecas. Para usar outro dispositivo, delete arquivo de configuração ou troque o valor de DeviceLibrary pelo dispositivo atual." \ --ellipsize exit 0 } # function FindDevice { zenity --info --title "Ebook-manager" \ --text \ "Não foi detetado arquivo de configuração. Iremos criar um agora. Esta etapa é necessária apenas desta primeira vez, ou caso delete posteriormente o arquivo de configuração." \ --ellipsize Device=$(zenity --entry --title "Dispositivos" \ --width=500 --height=300 \ --text "Escolha o seu dispositivo" \ $(mount | sed 's/.* on //; s/ .*//')) [ $? -eq 1 ] && exit 0 DeviceLibrary=$Device/Biblioteca/ RecordConfig $Device $DeviceLibrary } # function ChooseBooks { zenity --file-selection --title "Escolha os Livros" \ --multiple --filename=$1 > $Books [ $? -eq 1 ] && exit 0 sed -i 's/|/\n/g' $Books return } # function CopyContent { [ $1 = $PcLibrary ] && Destiny=$DeviceLibrary || Destiny=$PCLibrary exec 3<&0 exec 0<$Books { while read Line do cp -u "$1${Line##*/}" "$Destiny" sleep 1 done } | zenity --progress --title "Copiando Itens Selecionados" \ --width=400 --height=200 \ --text "Aguarde enquanto os itens são copiados" \ --pulsate --auto-close zenity --info \ --title "Cópia" \ --text "Todos os itens copiados com sucesso" \ --ellipsize exec 0<&3 exit 0 } # function RemoveContent { exec 3<&0 exec 0<$Books { while read Line do rm "$1${Line##*/}" sleep 1 done } | zenity --progress --title "Removendo Itens Selecionados" \ --width=400 --height=200 \ --text "Aguarde enquanto os itens são removidos" \ --pulsate --auto-close zenity --info \ --title "Remoção" \ --text "Todos os itens removidos com sucesso" \ --ellipsize exec 0<&3 exit 0 } # function ChooseAction { Action=$(zenity --list --radiolist --title "Ebook Manager" \ --text "Escolha a Ação a Executar" \ --width=500 --height=300 \ --column "Seleção" --column "Ação" \ FALSE "Copiar Livros" FALSE "Remover Livros" \ FALSE "Sair") [ $? -eq 1 ] && exit 0 ### 2 = cp / 3 = rm ### case $Action in "Copiar Livros") return 2 ;; "Remover Livros") return 3 ;; "Sair") exit 0 ;; *) exit 1 ;; esac } # function ChooseLibrary { LibrarySelect=$(zenity --list --radiolist --title "Ebook Manager" \ --text "Escolha a Biblioteca para Manipular" \ --width=500 --height=300 \ --column "Seleção" --column "Biblioteca" \ FALSE "Biblioteca do PC" FALSE \ "Biblioteca do Ebook-Reader" FALSE \ "Sair") [ $? -eq 1 ] && exit 0 ### 2 = $PcLibrary / 3 = $DeviceLibrary ### case $LibrarySelect in "Biblioteca do PC") return 2 ;; "Biblioteca do Ebook-Reader") return 3 ;; "Sair") echo Terminando programa exit 0 ;; *) zenity --error --text "Opção inválida." exit 1 ;; esac } # function ReadConfig { exec 3<&0 exec 0<$ConfigFile while read line do case ${line%% *} in Device) Device=${line##* } ;; DeviceLibrary) DeviceLibrary=${line##* } ;; PcLibrary) PcLibrary=${line##* } ;; esac done exec 0<&3 return } ################################################################################# # ##### INICIO ##### # trap RemoveTemp EXIT if [ -e $ConfigFile -a -s $ConfigFile ] then ReadConfig ChooseLibrary [ $? -eq 2 ] && Library=$PcLibrary || Library=$DeviceLibrary ChooseBooks $Library ChooseAction [ $? -eq 2 ] && CopyContent $Library || RemoveContent $Library else FindDevice fi exit 0 # #################################################################################
Baixando e instalando BrOffice 3 no Ubuntu
Script para enviar put para uma API usando curl e dados no formato json
Script de backup que envia por FTP, gera log e envia por e-mail
Comparação entre os escalonadores BFQ e MQ-Deadline (acesso a disco) no Arch e Debian
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Converter os repositórios Debian para o novo formato com as chaves
Instalando Spotify no Debian 13
Realizar overclock no Miyoo Mini (plus ou normal)
Direcionar uma URL para Outra No Mikrotik (1)
Monitoramento pfsense com zabbix (4)
Erro na inicialização do Debian como resolver (5)
Dúvidas sobre a originalidade de conteúdos online (11)
linux mint reconhece microfone de lapela como fone de ouvido sem micro... (4)