Skip to content

06 Advanced quickget features

Phil Clifford edited this page Aug 2, 2024 · 8 revisions

Command-line arguments

Here are the command line arguments for quickget.

Usage:
  quickget <os> <release> [edition]
  quickget ubuntu 22.04

Advanced usage:
  quickget <arg> [path] <os> [release] [edition]
  quickget --download ubuntu 22.04

Arguments:
  --download      <os> <release> [edition] : Download image; no VM configuration
  --create-config <os> [path/url] [flags]  : Create VM config for a OS image
  --open-homepage <os>                     : Open homepage for the OS
  --show          [os]                     : Show OS information
  --version                                : Show version
  --help                                   : Show this help message
------------------------------------ Flags -------------------------------------
--create-config:
  --disable-unattended                     : Force quickget not to set up an unattended installation
-------------------------- For testing & development ---------------------------
  --url           [os] [release] [edition] : Show image URL(s)
  --check         [os] [release] [edition] : Check image URL(s)
  --list                                   : List all supported systems
  --list-csv                               : List everything in csv format
  --list-json                              : List everything in json format
--------------------------------------------------------------------------------

Adding a new OS to quickget

Here's the quick 'n dirty guide to adding a new OS to quickget

  1. Update os_support() - add new OS, all lowercase
  2. Update os_info() - Fill all possible fields for the new OS: Here's an example:
    <OS name>)     INFO="<OS nice name>|<OS based on>|<OS default login:pass if any>|<OS homepage>|<ABOUT>";;
  1. Create a releases_newos() generator (required) outputs the current supported release versions, starting with the newest.
  2. Create a editions_newos() generator (optional) outputs the editions if new OS has multiple flavours/editions
  3. Update make_vm_config() - add any required new OS tweaks
  4. Create a get_newos() function - This echoes the URL to the ISO and HASH. See the other existing functions for reference, but here's an simple example.
function get_newos() {
    local HASH=""
    local ISO=""
    local URL=""
    
    ISO="newos-${RELEASE}-${EDITION}-amd64.iso"
    URL="https://www.newos.org/download/${RELEASE}/${EDITION}"
    HASH=$(web_pipe "${URL}/SHA512SUMS" | grep "${ISO}" | cut -d' ' -f 1)
    echo "${URL}/${ISO} ${HASH}"
}