Install additional packages

(in /home/bsgt/stablecaps_bashrc/modules/installer_module.sh)

Function Index

01 - get-latest-gh-release
02 - install-usr-local
03 - install-sys-bashrc-deps

>> get-latest-gh-release():

about: Download & extract the latest package release from gihub releases page to /tmp. Use install-usr-local() to install correct file

group: installers

param: 1: package name. This is used to search an internal dictionary for github connection details

example: get-latest-gh-release ccat

function get-latest-gh-release() {

    local PACKAGE_NAME=$1
    local GITHUB_USER=$(echo "${GH_INSTALL_LIB[${PACKAGE_NAME}]}" | cut -d, -f1)
    local GITHUB_REPO=$(echo "${GH_INSTALL_LIB[${PACKAGE_NAME}]}" | cut -d, -f2)

    if ! command -v jq &> /dev/null; then
        echo -e "please install stablecaps_bashrc dependencies using the command: \ninstall-sys-bashrc-deps"
        return 42
    fi

    local LNX_AMD64_RELEASE_URL=$(wget -q -nv -O- "https://api.github.com/repos/$GITHUB_USER/$GITHUB_REPO/releases/latest" 2>/dev/null |  jq -r '.assets[] | select(.browser_download_url | contains("linux-amd64")) | .browser_download_url')

    local REL_FILE=$(basename $LNX_AMD64_RELEASE_URL)
    echo "Release file is: $REL_FILE"

    wget -q -nv -O "/tmp/${REL_FILE}" $LNX_AMD64_RELEASE_URL
    if [ ! -f "/tmp/${REL_FILE}" ]; then
        echo -e "\n~~~~~~~~~~~~~~~\nDidn't download $PACKAGE_NAME from url:$LNX_AMD64_RELEASE_URL properly.  Where is /tmp/${REL_FILE}?"
        return 42
    fi

    echo "Now extracting $REL_FILE to /tmp"
    cd /tmp
    extract $REL_FILE
}


>> install-usr-local():

about: Move program to /usr/local/bin

group: installers

param: 1: Program file to move to /usr/local/bin. This function makes it executable

example: install-usr-local ${SOME_PROG}

function install-usr-local() {

    MYPROG=$1

    sudo mv -fv $MYPROG /usr/local/bin
    sudo chmod -v +x /usr/local/bin/$(basename $MYPROG)
}


>> install-sys-bashrc-deps():

about: Install stablecaps_bashrc dependencies

group: installers

example: install-sys-bashrc-deps

function install-sys-bashrc-deps() {
    sudo apt install jq
}