openwrt - kleines Buildimage Script v0.2

Ich habe das Script für openwrt Buildimage etwas optimiert.

owrt_buildimage.sh
#!/usr/bin/bash
 
# Funktion zum Setzen der Konfigurationsvariablen
set_config() {
    KERNEL_PARTSIZE=256
    ROOTFS_PARTSIZE=2048
    OWRTVER="23.05.4"
    ARCH="bcm27xx/bcm2711"
    ARCHSUB=${ARCH////-}
    PKGS="luci-app-snmpd snmpd usbutils tio tmux vim tcpdump luci-app-lxc luci-i18n-lxc-de lxc lxc-attach lxc-auto lxc-autostart lxc-cgroup lxc-checkconfig lxc-common lxc-config lxc-configs lxc-console lxc-copy lxc-create lxc-destroy lxc-device lxc-execute lxc-freeze lxc-hooks lxc-info lxc-init lxc-ls lxc-monitor lxc-monitord lxc-snapshot lxc-start lxc-stop lxc-templates lxc-top lxc-unfreeze lxc-unprivileged lxc-unshare lxc-user-nic lxc-usernsexec docker docker-compose podman luci-app-dockerman luci-i18n-dockerman-de luci-app-adblock luci-app-attendedsysupgrade luci-app-firewall luci-app-opkg luci-app-snmpd luci-app-statistics luci-i18n-adblock-de luci-i18n-attendedsysupgrade-de luci-i18n-base-de luci-i18n-lxc-de"
    PROFIL="NONE"
    DOWNPATH="$HOME/Downloads"
    FOLDER="openwrt-imagebuilder-$OWRTVER-$ARCHSUB.Linux-x86_64"
}
 
# Funktion zum Herunterladen und Entpacken des Image Builders
download_and_extract() {
    [[ -d $DOWNPATH ]] || mkdir -p $DOWNPATH
    cd $DOWNPATH/
    if [[ ! -d $FOLDER ]]; then
        wget -q -O - https://downloads.openwrt.org/releases/$OWRTVER/targets/$ARCH/openwrt-imagebuilder-$OWRTVER-$ARCHSUB.Linux-x86_64.tar.xz | tar xfJ -
    fi
    cd $FOLDER
}
 
# Funktion zum Anpassen der Partitionsgrößen in der Konfiguration
adjust_partition_sizes() {
    sed -i "s/CONFIG_TARGET_KERNEL_PARTSIZE=.*/CONFIG_TARGET_KERNEL_PARTSIZE=$KERNEL_PARTSIZE/; s/CONFIG_TARGET_ROOTFS_PARTSIZE=.*/CONFIG_TARGET_ROOTFS_PARTSIZE=$ROOTFS_PARTSIZE/" .config
}
 
# Funktion zum Erstellen des Images
build_image() {
    if [[ $PROFIL == "NONE" ]]; then
        make image PACKAGES="${PKGS}"
    else
        make image PROFILE=$PROFIL PACKAGES="${PKGS}"
    fi
}
 
# Funktion zum Anzeigen des Ausgabepfads
show_output_path() {
    echo "Das Image ist unter $DOWNPATH/$FOLDER/bin/targets/$ARCH zu finden."
    echo "Einfach cd $DOWNPATH/$FOLDER/bin/targets/$ARCH in der Konsole eingeben oder im Filer/Dateimanager suchen."
}
 
# Hauptfunktion
main() {
    set_config
    download_and_extract
    adjust_partition_sizes
    build_image
    show_output_path
}
 
# Ausführung der Hauptfunktion
main