#!/bin/bash # shellcheck source=kzcommon.sh ############################################################################### # Beeldbestanden downloaden. # # Geschreven door Karel Zimmer . # # Auteursrecht (c) 2014-2021 Karel Zimmer. # GNU Algemene Publieke Licentie . # # RelNum=16.02.01 # RelDat=2021-04-01 ############################################################################### ############################################################################### # Global constants ############################################################################### source "$(dirname "$0")"/kzcommon.sh readonly SEARCH_FOR=SHA256SUMS readonly SOURCE_1=http://releases.ubuntu.com readonly SOURCE_2=http://cdimage.ubuntu.com readonly TARGET=$HOME/Downloads # Bij aanpassingen ook .completion aanpassen! readonly OPTIONS_SHORT=$OPTIONS_SHORT_COMMON'c' readonly OPTIONS_LONG=$OPTIONS_LONG_COMMON',checksums' readonly USAGE="Gebruik: $PROGRAM_NAME [-c|--checksums] $OPTIONS_USAGE_COMMON" readonly HELP="Gebruik: $PROGRAM_NAME [OPTIE...] Beeldbestanden downloaden. Opties: -c --checksums download alleen de controlebestanden $OPTIONS_HELP_COMMON" ############################################################################### # Gobal variables ############################################################################### declare FULL_VS='' declare OPTION_CHECKSUMS=false ############################################################################### # Functions ############################################################################### check_input() { PARSED=$( getopt --alternative \ --options "$OPTIONS_SHORT" \ --longoptions "$OPTIONS_LONG" \ --name "$PROGRAM_NAME" \ -- "$@" ) || GETOPT_RC=$? if [[ $GETOPT_RC -ne 0 ]]; then printf '%s\n' "$USAGELINE" >&2 exit $ERROR fi eval set -- "$PARSED" process_general_options "$@" while true; do case $1 in -c|--checksums) OPTION_CHECKSUMS=true shift ;; --) shift break ;; *) shift ;; esac done if [[ "$*" ]]; then printf "$PROGRAM_NAME: %s\n%s\n" \ 'geen argumenten opgeven' \ "$USAGELINE" >&2 exit $ERROR fi # Een non-gui script gestart met optie gui. if $OPTION_GUI; then OPTION_GUI=false TERMINAL=true fi check_user } process_input() { FULL_VS="$(lsb_release --description --short | awk '{print $2}')" read -rp "Wat is de Ubuntu-versie? [$FULL_VS]: " if [[ $REPLY ]]; then FULL_VS="$REPLY" fi if $OPTION_CHECKSUMS; then download_checksums info "Controlebestanden zijn gedownload en staan in $TARGET. " else download_isos download_checksums fi } download_isos() { cd "$TARGET" rm --force {u,xu,lu}buntu-*.iso* URL_LIST="\ $SOURCE_1/$FULL_VS/ubuntu-$FULL_VS-desktop-amd64.iso $SOURCE_1/$FULL_VS/ubuntu-$FULL_VS-live-server-amd64.iso $SOURCE_2/lubuntu/releases/$FULL_VS/release/lubuntu-$FULL_VS-desktop-amd64.iso $SOURCE_2/xubuntu/releases/$FULL_VS/release/xubuntu-$FULL_VS-desktop-amd64.iso" # max-args=1 zorgt ervoor dat per invoerregel 1 opdracht wordt gestart. # max-procs=4 zorgt ervoor dat maximaal 4 parallele taken worden gestart. printf '%s\n' "$URL_LIST" | xargs --max-args=1 --max-procs=4 wget } download_checksums() { cd "$TARGET" || exit $ERROR rm --force {u,xu,lu}buntu-*-SHA256SUMS wget --output-document=ubuntu-$SEARCH_FOR \ $SOURCE_1/"$FULL_VS"/$SEARCH_FOR wget --output-document=xubuntu-$SEARCH_FOR \ $SOURCE_2/xubuntu/releases/"$FULL_VS"/release/$SEARCH_FOR wget --output-document=lubuntu-$SEARCH_FOR \ $SOURCE_2/lubuntu/releases/"$FULL_VS"/release/$SEARCH_FOR } term_script() { info "Om de $SEARCH_FOR-controlebestanden op te splitsen voer uit: ${BLUE}kzspsum${NORMAL} Om de beeldbestanden (.iso) te controleren voer uit: ${BLUE}cd $TARGET;$SEARCH_FOR --check *.$SEARCH_FOR; cd -${NORMAL}" exit $SUCCESS } ############################################################################### # Main line ############################################################################### main() { init_script check_input "$@" process_input term_script } main "$@" # EOF