Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NewπŸ₯³year merge #892

Closed
wants to merge 93 commits into from
Closed

Conversation

zen0bit
Copy link
Contributor

@zen0bit zen0bit commented Dec 30, 2023

A lot...

quickget

Big refactoring

New feature:

alpine
Pretty name: Alpine Linux
Based of: Independent
Credentials: Unknown
Homepage: https://alpinelinux.org/
Info: Security-oriented, lightweight Linux
distribution based on musl libc and busybox.
  • Show proper help message
                             _              _
           __ _ _   _ _  ___β•‘ β•‘ ____ _  ___β•‘ β•‘_
          / _` β•‘ β•‘ β•‘ β•‘ β•‘/ __β•‘ β•‘/ / _` β•‘/ _ \ __β•‘
         ( (_β•‘ β•‘ β•‘_β•‘ β•‘ β•‘ (__β•‘   < (_β•‘ β•‘  __/ β•‘_      MIT
          \__, β•‘\__,_β•‘_β•‘\___β•‘_β•‘\ \__, β•‘\___β•‘\__β•‘   license
             β•‘_β•‘  version: 4.9.1 β•‘___/
 QEMU 8.1.3 --------------------------------------------------
       > Quickly create and run optimised Windows, <
       > macOS and Linux desktop virtual machines. <
   homepage   -    Not Yet
  repository  - https://github.com/quickemu-project/quickemu
 official GUI - https://github.com/quickemu-project/quickgui
  by Wimpy https://github.com/flexiondotorg and contributors
 Discord - https://discord.gg/wimpy-s-world-712850672223125565
--------------------------------------------------------------

Basic Usage:
 quickget <os> <release> [edition]
 quickget alpine latest

Advanced Usage:
 quickget <arg> [path] <os> [re] [ed]
 quickget -dt $HOME/Downloads peppermint latest devuan-xfce

Posible arguments:
 --version          (-v)                : Show version and exit
 --help             (-h)                : Show this help message and exit
 --list-json       (-lj)                : Show OS info in json format
 --list-csv        (-lc)                : Show OS info in csv format
 --os-info          (-i) <os>           : Show info about OS
 --os-homepage      (-o) <os>           : Open OS homepage in default browser
 --iso-url-show     (-u) <os> <re> [ed]      : Show ISO download URL
 --iso-url-test     (-t) <os> <re> [ed]      : Test if ISO is available
 --iso-download     (-d) <os> <re> [ed]      : Download ISO (without create VM)
 --iso-download-to (-dt) <pa> <os> <re> [ed] : Download ISO to specified dir

supported Operating Systems:
alma alpine android antix archlinux archcraft arcolinux artix athenaos batocera
bazzite blendos bodhi bunsenlabs cachyos centos-stream chimeralinux crunchbang++
debian deepin devuan dragonflybsd easyos edubuntu elementary endeavouros endless
fedora freebsd freedos garuda gentoo ghostbsd haiku holoiso kali kdeneon
kolibrios kubuntu linuxlite linuxmint lmde mageia manjaro mxlinux netboot netbsd
nixos lubuntu macos openbsd openindiana opensuse oraclelinux peppermint
parrotsec popos porteus primtux reactos rebornos rockylinux siduction slackware
slax slint slitaz solus sparkylinux spiral tails tinycore trisquel truenas-core
truenas-scale ubuntu ubuntu-budgie ubuntucinnamon ubuntukylin ubuntu-mate
ubuntu-server ubuntustudio ubuntu-unity vanillaos void vxlinux windows
windows-server xerolinux xubuntu zorin
  • OS support list not break in words on end of line fold -s -w $(tput cols)
  • OS info added to csv
  • ERROR functions (make script bit readable)
  • small function cut_1 instead of cut -d' ' -f1 in HASH and some others

Added again:

New distro:

  • πŸ“¦ Windows Server by @lj3954
windows-server
Pretty name: Windows Server
Based of: proprietary
Credentials: Unknown
Homepage: https://www.microsoft.com/en-us/windows-server/
Info: Platform for building an infrastructure of connected applications, networks, and web services.
crunchbang++
Pretty name: #!++
Based of: Debian
Credentials: Unknown
Homepage: https://www.crunchbangplusplus.org/
Info: The classic minimal crunchbang feel, now with debian 12 bookworm.
slax
Pretty name: Slax
Based of: Debian Slackware
Credentials: Unknown
Homepage: https://www.slax.org/
Info: Compact, fast, and modern Linux operating system that combines sleek design with modular approach. With the ability to run directly from a USB flash drive without the need for installation, Slax is truly portable and fits easily in your pocket.
bazzite
Pretty name: bazzite
Based of: Fedora,SteamOS
Credentials: Unknown
Homepage: https://github.com/ublue-os/bazzite/
Info: Container native gaming and a ready-to-game SteamOS like.
artix
Pretty name: Artix Linux
Based of: Arch
Credentials: Unknown
Homepage: https://artixlinux.org/
Info: The Art of Linux. Simple. Fast. Systemd-free.
athenaos
Pretty name: Athena OS
Based of: Arch
Credentials: Unknown
Homepage: https://athenaos.org/
Info: Offer a different experience than the most used pentesting distributions by providing only tools that fit with the user needs and improving the access to hacking resources and learning materials.
chimeralinux
Pretty name: Chimera Linux
Based of: Independent
Credentials: anon:chimera root:chimera
Homepage: https://chimera-linux.org/
Info: Modern, general-purpose non-GNU Linux distribution.
slitaz
Pretty name: SliTaz
Based of: Independent
Credentials: Unknown
Homepage: https://www.slitaz.org/en/
Info: Simple, fast and low resource Linux OS for servers & desktops.
sparkylinux
Pretty name: SparkyLinux
Based of: Debian
Credentials: Unknown
Homepage: https://sparkylinux.org/
Info: Fast, lightweight and fully customizable operating system which offers several versions for different use cases.
primtux
Pretty name: PrimTux
Based of: Ubuntu
Credentials: Unknown
Homepage: https://primtux.fr/
Info: Upgrade for obsolete equipment and benefiting the school or educational environment in the spirit of education.
slint
Pretty name: Slint
Based of: Slackware
Credentials: Unknown
Homepage: https://slint.fr/
Info: Slint is an easy-to-use, versatile, blind-friendly Linux distribution for 64-bit computers. Slint is based on Slackware and borrows tools from Salix. Maintainer: Didier Spaier.
parrotsec
Pretty name: Parrot Security
Based of: Debian
Credentials: parrot:parrot
Homepage: https://www.parrotsec.org/
Info: Provides a huge arsenal of tools, utilities and libraries that IT and security professionals can use to test and assess the security of their assets in a reliable, compliant and reproducible way.
  • Whonix - Added preparation
whonix
Pretty name: Whonix
Based of: Debian
Credentials: Unknown
Homepage: https://www.whonix.org/
Info: Superior Internet Privacy with Whonixβ„’ As handy as an app - delivering maximum anonymity and security.

Break changes:

  • list_csv and list_json arguments (bit) changed

Changes:

  • Zorin 17 by @lj3954
  • list csv use | as delimiter
  • repair quickget indentation
  • removed whitespaces in quickget
  • changed tabs to spaces in quickget
  • Releases are sorted from latest to oldest
  • OS in alphabetical order

Fix:

Include changes from @lj3954, @DaffyDuke and me

Also our two big updates will no longer be needed, everything is included here. πŸ₯Έ (hopefully) Check pls

Mostly should work as expected.

Need more testing edge cases.
And finish download_iso_to

PS: Maybe I forgot mention some change...

Happy new year
πŸš€

zen0bit and others added 26 commits December 23, 2023 22:33
--show-iso-url/-u
--show-distro-homepage/-s
Also slightly modified help message
* Fix quickget show-iso-url and test-iso-url creating unnecessary directory

* Beautify output, add show-iso-url and test-iso-url for Windows (fully) and macOS (sorta)

* (NON-FUNCTIONAL) macrecovery shell script.

* Semi-functional (although incomplete) macrecovery shell script
Rough draft. To be completed, cleaned up and simplified (very much so)
hoping to merge into quickemu & replace the python macrecovery dependency.

* macrecovery shell script now successfully downloads the image. TODO: Verification

* Merged macrecovery functions into quickget. Chunkcheck (C) to replace macrecovery's image verification
Chunkcheck written by MCJack123: https://gist.github.com/MCJack123/943eaca762730ca4b7ae460b731b68e7

* Replace C chunkcheck binary with the Python equivalent. Re-add python to dependencies.

* force macOS guests to usually boot with core counts which are powers of 2; fix quickemu-project#865

* Add support for macOS Sonoma

* Fix issue where script would be unable to find chunkcheck if installed system-wide

* Update README verbiage

* Add headers to web_get function; macOS can now be downloaded via aria2; clean up code & output

* Add support for macOS Sonoma

* Fix use of wrong operator (>) which touches a file

* Small correction to README

* macOS switched from wget to default downloader (aria2/wget)

* Replace wget with cURL for downloading macOS chunklist file

* Fix variable naming in generate_id function
* Fix wget2

* Improve wget2 check

* Use wget2 whenever available

* Use curl instead of wget in order to check where URLs redirect
* Add windows languages, many bugfixes
Entering a release, edition, or OS with only part of a valid one will now throw an error, rather than attempting to download
	i.e. $quickget windows 1 > "ERROR! Windows 1 is not a supported release", rather than attempting to download a nonexistent ISO

* Replace "languages" with "editions" to improve consistency

* Remove unnecessary code, hardcode windows editions to not waste time

* Add windows server, LTSC

* Windows server requires IDE drive

* Update Windows Guests section in README.md

* Improve support for windows server

Add back the language array, change stylization of languages in list
This was referenced Dec 30, 2023
Signed-off-by: zenobit <zenobit@disroot.org>
Signed-off-by: zenobit <zenobit@disroot.org>
list, list_csv and list_json Not mentioned!

Signed-off-by: zenobit <zenobit@disroot.org>
Signed-off-by: zenobit <zenobit@disroot.org>
@zen0bit zen0bit changed the title 🚧 NewπŸ₯³year merge 🚧 NewπŸ₯³year merge Jan 16, 2024
@zen0bit zen0bit marked this pull request as ready for review January 16, 2024 12:49
@zen0bit
Copy link
Contributor Author

zen0bit commented Jan 16, 2024

Check pushed changes
I think good to go...
PS: Working on testing ISOs...
πŸ₯³

zen0bit added a commit to oSoWoSo/DistroHopper that referenced this pull request Jan 16, 2024
quickemu-project/quickemu#892
Signed-off-by: zenobit <zenobit@disroot.org>
Signed-off-by: zenobit <zenobit@disroot.org>
Signed-off-by: zenobit <zenobit@disroot.org>
Signed-off-by: zenobit <zenobit@disroot.org>
Signed-off-by: zenobit <zenobit@disroot.org>
Signed-off-by: zenobit <zenobit@disroot.org>
Signed-off-by: zenobit <zenobit@disroot.org>
Signed-off-by: zenobit <zenobit@disroot.org>
Signed-off-by: zenobit <zenobit@disroot.org>
Signed-off-by: zenobit <zenobit@disroot.org>
Signed-off-by: zenobit <zenobit@disroot.org>
Signed-off-by: zenobit <zenobit@disroot.org>
Signed-off-by: zenobit <zenobit@disroot.org>
Signed-off-by: zenobit <zenobit@disroot.org>
Signed-off-by: zenobit <zenobit@disroot.org>
Copy link
Contributor

@TuxVinyards TuxVinyards left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would like to think that one day the code will get tidied enough that we don't have to have all these shellcheck disablements. But if we don't turn off the hundreds of warnings, we can't see the errors, I suppose. Hope's spring is eternal ....

@zen0bit
Copy link
Contributor Author

zen0bit commented Jan 17, 2024

@TuxVinyards
Copy link
Contributor

TuxVinyards commented Jan 18, 2024

As a heads-up seemed okay, from the other day:

I noticed that quickget Mageia is seriously out-of-date. We are offering ver 8 which went EOL last month and is no longer downloadable .... πŸ™„

edit: not downloadable from their html download page, that is

PS also GhostBSD has new release 23.10.01

@zen0bit
Copy link
Contributor Author

zen0bit commented Jan 19, 2024

I would like to think that one day the code will get tidied enough that we don't have to have all these shellcheck disablements. But if we don't turn off the hundreds of warnings, we can't see the errors, I suppose. Hope's spring is eternal ....

#909

@TuxVinyards
Copy link
Contributor

I haven't really explored GitHub actions as a tool. I have tended to see it as aimed more at enterprise level and left it be. You seem to have done well with it and Mega Lint certainly looks impressive.

There are so many tests. Are all the languages that are being linted in use in quickemu? Or are there snippets are hiding in places?

In general, I am a bit concerned about shellcheck being disabled left right and centre and then having claims made that the code is all good because it can now pass ....

Personally, I would feel happier knowing that the new code is being usage tested to see that it actually does what it is meant to do and that it can do it in different usage scenarios.

@zen0bit
Copy link
Contributor Author

zen0bit commented Jan 20, 2024

I haven't really explored GitHub actions as a tool. I have tended to see it as aimed more at enterprise level and left it be. You seem to have done well with it and Mega Lint certainly looks impressive.

There are so many tests. Are all the languages that are being linted in use in quickemu? Or are there snippets are hiding in places?

In general, I am a bit concerned about shellcheck being disabled left right and centre and then having claims made that the code is all good because it can now pass ....

Personally, I would feel happier knowing that the new code is being usage tested to see that it actually does what it is meant to do and that it can do it in different usage scenarios.

I wanna use output of linters and create review on PR. But so far not succesfully.
Also megalinter show summary only on PRs from same repo πŸ₯² (At least for me now)

This will be closed, other PRs in progres..

@zen0bit zen0bit closed this Feb 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants