quickemu
quickemu copied to clipboard
feat: Add quickgetc
Quickgetc is an implementation of bash quickget which makes use of configurations generated through quickget_ci. This is very early, most features are not yet implemented.
Advantages:
- Quickgetc itself will require little maintenance or updates, since everything is handled in CI
- Releases and editions for all implemented operating systems are determined dynamically during the config generation, with no performance impact to the end user
- All URLs are validated, entries with invalid URLs are thrown out
- Quickgetc uses the host's architecture by default, falling back if it's not available for the selected distro. The user can also override it.
- Archives are automatically handled, no need to play guessing games or implement features per OS
- list_csv is fast. Really fast. I've seen it under 20ms. Wonderful for projects like QuickGUI
- Complete compatibility with bash quickget and quickemu
Additional dependency: zstd. Alternatively, gzip could be used (which is already used by bash quickget) since the JSON is compressed into both zstd and gzip archives, but zstd is faster and has slightly better compression.
- [x] Handle file downloads
- [x] Create VM configuration
- [ ] Re-implement test functionality, create_vm, and other options from quickget
- [ ] Implement support for custom disk images, including those sourced from the web, which quickget_ci supports and already uses in one case (FreeBSD VM Images)
- [ ] Add far greater choice of operating systems to quickget_ci