Coder Social home page Coder Social logo

joshuavandaele / superisoupdater Goto Github PK

View Code? Open in Web Editor NEW
13.0 1.0 2.0 124 KB

A powerful tool to conveniently update all of your ISOs!

License: GNU General Public License v3.0

Python 100.00%
diagnostic diagnostic-tool diagnostictool gplv3 iso linux operating-system operating-systems os python

superisoupdater's Introduction

Super ISO Updater

Super ISO Updater is a powerful tool that provides a convenient way to check for updates and install the latest versions of various ISO files. It is specifically designed to work with a Ventoy drive and supports a wide range of ISOs.

Getting Started

Prerequisites

  • Python 3.12+ installed on your system.

Installation

Using pip

  1. Open your terminal or command prompt.
  2. Install the package using the following command:
python -m pip install sisou

Using git

  1. Clone this repository locally by running
git clone https://github.com/FolfyBlue/SuperISOUpdater
  1. Navigate into the newly created directory by running
cd SuperISOUpdater
  1. Install the module using the following command:
python -m pip install .

Usage

To use SISOU, follow these steps:

Running the script

sisou <Ventoy Partition>

Example on Windows

sisou E:

Example on Linux

sisou /run/media/joshua/Ventoy/

Logging

The script generates logs during its execution. You can control the log level using the -l or --log-level argument when running the script. The available log levels are: DEBUG, INFO, WARNING, ERROR, and CRITICAL. By default, the log level is set to INFO.

To set a specific log level, use the -l option followed by the desired log level:

sisou <Ventoy Partition> -l DEBUG

You can also specify a log file using the -f or --log-file argument to save the logs to a file instead of displaying them in the console:

sisou <Ventoy Partition> -f /path/to/log_file.log

Customization

The sisou.py script uses a configuration file (config.toml) to define the ISOs to be updated. You can customize this configuration file to add or remove ISOs from the update process.

To customize the ISOs, open the config.toml file and edit the relevant sections. Each ISO is associated with an updater class (e.g., Ubuntu, MemTest86Plus, etc.). You can enable or disable ISOs by modifying the corresponding values in the configuration file.

NOTE: Be cautious when modifying the configuration file, as incorrect changes may cause the script to malfunction.

By default, the script uses the config.toml file located in the same directory as the Ventoy drive.

You can specify a custom configuration file using the -c or --config-file argument when running the script:

sisou <Ventoy Partition> -c /path/to/config.toml

Supported ISOs

The tool currently supports the following ISOs:

  • Diagnostic Tools
    • Hiren's BootCD PE
    • Memtest86+
    • SystemRescue
    • UltimateBootCD
    • Rescuezilla (editions: "focal", "jammy", "lunar", "mantic", "noble")
  • Boot Repair
    • Super Grub 2
  • Disk Utilities
    • Clonezilla
    • GParted Live
    • ShredOS
    • HDAT2 (editions: "full", "lite", "diskette")
  • Operating Systems
    • Linux
      • Arch Linux
      • Debian (editions: "standard", "cinnamon", "kde", "gnome", "lxde", "lxqt", "mate", "xfce")
      • Ubuntu (editions: "LTS", "interim")
      • Fedora (editions: "KDE", "Budgie", "Cinnamon", "LXDE", "MATE_Compiz", "SoaS", "Sway", "Xfce", "i3")
      • Linux Mint (editions: "cinnamon", "mate", "xfce")
      • Manjaro (editions: "plasma", "xfce", "gnome", "budgie", "cinnamon", "i3", "mate")
      • Kali Linux (editions: "installer", "live", "installer-netinst", "installer-purple")
      • Rocky Linux (editions: "dvd", "boot", "minimal")
      • OpenSUSE (editions: "leap", "leap-micro", "jump")
      • TrueNAS (editions: "scale")
      • Tails
      • ChromeOS (editions: "ltc", "ltr", "stable")
    • Windows
      • Windows 11 (Multi-edition ISO, Any language)
      • Windows 10 (Multi-edition ISO, Any language)
    • BSD
      • TrueNAS (editions: "core")
    • Other
      • FreeDOS (editions: "BonusCD", "FloppyEdition", "FullUSB", "LegacyCD", "LiteUSB", "LiveCD")
      • TempleOS (editions: "Distro", "Lite")

Contribute

If you have any suggestions, bug reports, or feature requests, feel free to open an issue or submit a pull request. Your contributions are highly appreciated!

License

This project is licensed under the GPLv3 License.


Thank you for using Super ISO Updater! If you encounter any issues or need assistance, please don't hesitate to reach out. Happy updating!

superisoupdater's People

Contributors

joshuavandaele avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

superisoupdater's Issues

No hash verification

Describe the bug
No verification of the ISO files before moving onto the next step. (moving them into folders)

To Reproduce
Steps to reproduce the behavior:

Update any iso.
Spam close the process (ctrl+C or ctrl+Z).
Restart the process.
Constate that a 360kb file is now my debian ISO and there is no update.

Expected behavior

Completion verification at least. But SHA256 verification would be the right thing to do. Perhaps with a setting to toggle.

Some downloads will eventually be faulty, leading to the moment where a user cannot get their distro to run for unknown reasons. Before they redownload the right ISO they will fiddle a bit, leading to frustrations.

Cannot install with python3

cc@cc-1-0:~/Desktop/SuperISOUpdater-1.1.3$ sh
$ python3 -m pip install sisou
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.

If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.

If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.

See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
$ exit
cc@cc-1-0:~/Desktop/SuperISOUpdater-1.1.3$ python3 -m pip install .
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.

If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.

If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.

See /usr/share/doc/python3.11/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
cc@cc-1-0:~/Desktop/SuperISOUpdater-1.1.3$

What worked was using pipx.

f-strings aren't correctly processed under certain versions of Python

Describe the bug
Certain f-strings, if they contains a quote inside themselves, will error out

To Reproduce
name = "Joshua"
print(f"Hello, {"User " + name}")

Expected behavior
"Hello, User Joshua"
Instead: Error

Screenshots
image

Information (please complete the following information):

  • Installer: Windows
  • Python version 3.11.6

Additional context
This seems to only happen on Windows

Ubuntu Interim is broken

Describe the bug
The check of integrity fails while parsing the hash

To Reproduce

  • Enable Ubuntu Interim in your config.toml
  • Run the tool

Expected behavior
The hash is correctly parsed and can be verified

Screenshots
N/A

Information (please complete the following information):

  • Python version: 3.11.4
Traceback (most recent call last):
  File "/home/folfy/Desktop/python/SuperISOUpdater/modules/updaters/GenericUpdater.py", line 114, in install_latest_version
    integrity_check = self.check_integrity()
                      ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/folfy/Desktop/python/SuperISOUpdater/modules/updaters/Ubuntu.py", line 67, in check_integrity
    sha256_sum = parse_hash(
                 ^^^^^^^^^^^
  File "/home/folfy/Desktop/python/SuperISOUpdater/modules/utils.py", line 213, in parse_hash
    return next(
           ^^^^^
StopIteration

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/folfy/Desktop/python/SuperISOUpdater/superiso.py", line 47, in run_updater
    updater.install_latest_version()
  File "/home/folfy/Desktop/python/SuperISOUpdater/modules/updaters/GenericUpdater.py", line 121, in install_latest_version
    raise IntegrityCheckError(
modules.exceptions.IntegrityCheckError: Integrity check failed: An error occurred

Additional context
N/A

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.