[Projeto] ISO Toolkit Elite v2.2.5 - Gerenciamento de ISOs com interface gráfica (Script Bash)

Olá, pessoal!

Gostaria de compartilhar com vocês um projeto que venho desenvolvendo: o ISO Toolkit Elite v2.2.5. O objetivo foi orquestrar uma ferramenta, para reunir funções comuns do terminal em uma interface muito mais amigável.

O projeto é um script Bash empacotado como um AppImage (apenas 787,6 KB). Ele conta com um “Modo de Elite” que detecta se você tem o YAD instalado para oferecer uma experiência visual completa, mantendo a compatibilidade com o Zenity se necessário.

Principais Funções:

  • Dividir e Unir ISOs com verificação SHA-256.

  • Verificar Hash e Assinaturas Digitais.

  • Gerar Checksums (MD5, SHA-1, SHA-256) de forma automatizada.

  • Integração simples ao menu do sistema.

Tudo é Open Source (MIT) e o código está disponível para quem quiser aprender ou melhorar o projeto:

:link: Link do Projeto: https://github.com/jricslima/ISO-Toolkit-Portable

Se alguém puder testar em outras distribuições além do Mint, adoraria saber se a detecção do YAD/Zenity funcionou conforme o esperado! Feedbacks técnicos e sugestões de melhoria no código são muito bem-vindos.


6 curtidas

No arch funcionou mas tive que instalar o zenity e o fuse2 manualmente.
[broly@archlinux Downloads]$ ls
ISO_Toolkit_Portable-x86_64.AppImage
[broly@archlinux Downloads]$ ./ISO_Toolkit_Portable-x86_64.AppImage
dlopen(): error loading libfuse.so.2

AppImages require FUSE to run.
You might still be able to extract the contents of this AppImage
if you run it with the --appimage-extract option.
See FUSE · AppImage/AppImageKit Wiki · GitHub
for more information
[broly@archlinux Downloads]$
[broly@archlinux Downloads]$ ./ISO_Toolkit_Portable-x86_64.AppImage
/tmp/.mount_ISO_To55n3wH/AppRun: line 11: /tmp/.mount_ISO_To55n3wH/ISO-Toolkit.desktop: Read-only file system
chmod: changing permissions of ‘/tmp/.mount_ISO_To55n3wH/ISO-Toolkit.desktop’: Read-only file system
/tmp/.mount_ISO_To55n3wH/AppRun: line 60: zenity: command not found
[broly@archlinux Downloads]$ sudo pacman -S zenity
resolving dependencies…
looking for conflicting packages…

Packages (8) gssdp-1.6.4-1 gst-plugins-bad-libs-1.28.1-1 gtk4-1:4.20.3-1 gupnp-1:1.6.9-1
gupnp-igd-1.6.0-2 libadwaita-1:1.8.4-1 libnice-0.1.23-1 zenity-4.2.1-1

Total Download Size: 15.89 MiB
Total Installed Size: 77.02 MiB

:: Proceed with installation? [Y/n] y
:: Retrieving packages…
libnice-0.1.23-1-x86_64 313.5 KiB 541 KiB/s 00:01 [####################################] 100%
libadwaita-1:1.8.4-1-x86_64 750.4 KiB 995 KiB/s 00:01 [####################################] 100%
gupnp-1:1.6.9-1-x86_64 125.3 KiB 883 KiB/s 00:00 [####################################] 100%
zenity-4.2.1-1-x86_64 2.7 MiB 3.10 MiB/s 00:01 [####################################] 100%
gst-plugins-bad-libs-1.28.1-1-x86_64 3.1 MiB 3.45 MiB/s 00:01 [####################################] 100%
gssdp-1.6.4-1-x86_64 57.8 KiB 463 KiB/s 00:00 [####################################] 100%
gupnp-igd-1.6.0-2-x86_64 28.4 KiB 302 KiB/s 00:00 [####################################] 100%
gtk4-1:4.20.3-1-x86_64 8.9 MiB 7.90 MiB/s 00:01 [####################################] 100%
Total (8/8) 15.9 MiB 12.2 MiB/s 00:01 [####################################] 100%
(8/8) checking keys in keyring [####################################] 100%
(8/8) checking package integrity [####################################] 100%
(8/8) loading package files [####################################] 100%
(8/8) checking for file conflicts [####################################] 100%
(8/8) checking available disk space [####################################] 100%
:: Processing package changes…
(1/8) installing gssdp [####################################] 100%
Optional dependencies for gssdp
gtk4: gssdp-device-sniffer [pending]
(2/8) installing gupnp [####################################] 100%
Optional dependencies for gupnp
python: gupnp-binding-tool [installed]
(3/8) installing gupnp-igd [####################################] 100%
(4/8) installing libnice [####################################] 100%
Optional dependencies for libnice
gstreamer: “nice” GStreamer plugin [installed]
(5/8) installing gst-plugins-bad-libs [####################################] 100%
(6/8) installing gtk4 [####################################] 100%
Optional dependencies for gtk4
evince: Default print preview command
xdg-desktop-portal-gtk: Fallback portals for various APIs [installed]
(7/8) installing libadwaita [####################################] 100%
(8/8) installing zenity [####################################] 100%
:: Running post-transaction hooks…
(1/4) Arming ConditionNeedsUpdate…
(2/4) Compiling GSettings XML schema files…
(3/4) Updating icon theme caches…
(4/4) Updating the desktop file MIME type cache…
[broly@archlinux Downloads]$ ./ISO_Toolkit_Portable-x86_64.AppImage
/tmp/.mount_ISO_ToGAKRAT/AppRun: line 11: /tmp/.mount_ISO_ToGAKRAT/ISO-Toolkit.desktop: Read-only file system
chmod: changing permissions of ‘/tmp/.mount_ISO_ToGAKRAT/ISO-Toolkit.desktop’: Read-only file system
Warning: --window-icon is deprecated and will be removed in a future version of zenity; Treating as --icon.

(zenity:2598): Gdk-WARNING **: 10:44:46.858: Vulkan: Loader Message: setup_loader_term_phys_devs: Failed to d
etect any valid GPUs in the current config

(zenity:2598): Gdk-WARNING **: 10:44:46.858: vkEnumeratePhysicalDevices(): Initialization of an object could n
ot be completed for implementation-specific reasons. (VK_ERROR_INITIALIZATION_FAILED) (-3)
libEGL warning: egl: failed to create dri2 screen
libEGL warning: egl: failed to create dri2 screen

(zenity:2635): Gdk-WARNING **: 10:44:57.643: Vulkan: Loader Message: setup_loader_term_phys_devs: Failed to d
etect any valid GPUs in the current config

(zenity:2635): Gdk-WARNING **: 10:44:57.643: vkEnumeratePhysicalDevices(): Initialization of an object could n
ot be completed for implementation-specific reasons. (VK_ERROR_INITIALIZATION_FAILED) (-3)
libEGL warning: egl: failed to create dri2 screen
libEGL warning: egl: failed to create dri2 screen
/tmp/.mount_ISO_ToGAKRAT/menu.sh: line 51: gnome-terminal: command not found

Depois tive erros de permissao, extrai o appimage e rodei o AppRun manualmente para evitar isso,
dai deu erro de genisoimage faltando instalei o cdrkit e o gnome-terminal pois estou no kde.
Extrai uma iso do windows e tentei reimpacotar e deu aquele erro de insatall.wim muito grande ja conhecido, se adicional o wimlib e um script para dividir o install.wim sera possivel gerar iso windows modificados com sua ferramenta :grin:.
log.txt

Olá, sparrow! Muito obrigado pelo feedback detalhado e por testar o ISO Toolkit Elite no Arch Linux.

Lembrei agora que antes de publicar eu tive o cuidado de testar com a ISO do Ubuntu de quase 6GB e tinha dado tudo certo em todos os itens do Menu, de tantos testes e backups que fiz, devo ter usado o AppRun errado, a prova disso é que observei que cada ítem do Menu, ao final do procedimento, ele fecha o aplicativo, e isso já havia sido ajustado antes, porque ao criar uma ISO por exemplo, pode-se na sequência querer gerar um hash também, por isso o aplicativo não pode fechar ao final de cada tarefa sem que o usuário assim o queira.

Vou rever o projeto e fazer os devidos acertos.

Edit.: Corrigido.

O AppImage foi atualizado com um sistema de verificação de dependências mais robusto e o README.md agora contém instruções claras de instalação caso o seu sistema não tenha o YAD ou Zenity pré-instalado. Também adicionei suporte para dividir ISOs acima de 4GB.

1 curtida