#!/usr/bin/env bash

####################################################
#
# SRC_PREPARE
#
# Marcin Woźniak
# y0rune@aol.com
#
# Last edit: 16-09-2020
#
###################################################

mainteiner="Marcin Woźniak"

function scanning(){
    EUSCAN=$(euscan --nocolor --quiet "$1")
    if [ -n "$EUSCAN" ]; then
        echo $1
        echo "=============== NOW: $(find ./* -mindepth 2 -maxdepth 2  -name ''"$1"'*.ebuild' | sort | tail -1) =================
        $(echo -e "$EUSCAN" | tail -1)"
        sleep 1
    fi
}

function folder(){
    cd "$1"; git pull || exit

    PACKAGES=()

    for FILE in */*
    do
        PACKAGE=$(echo "$FILE" | grep -Eo '[A-z0-9_-]+$')
        PACKAGES+=("$PACKAGE")
    done

    for i in "${PACKAGES[@]}"
    do
        scanning "$i" &
    done

    for j in $(jobs -p)
    do
        wait "$j"
    done

    echo -n ">>> Done scanning $1"
}

function nofolder(){
    if [ -z "${1}" ]; then
        echo "No overlay names given"
        echo "Please give at least one overlay name as a commandline argument"
        echo "Exiting"
        exit 1
    fi

for overlay in "${@}"
do
    for ebuild in $(EIX_LIMIT=0 eix --only-names --in-overlay "${overlay}")
    do
        euscan --nocolor --quiet "${ebuild}" &
        sleep 1
    done

    for j in $(jobs -p)
    do
        wait "$j"
    done

    echo -n ">>> Done scanning ${overlay}"
done
}

function help(){
    echo "You can use:"
    echo "*   -r or --repo <HERE-REPO-NAME>"
    echo "*   -f or --folder <FOLDER-NAME>"
    echo
    echo "Example of usage"
    echo "./logeuscan -r src_prepare-overlay"
    echo "./logeuscan -f ~/git/src_prepare-overlay"
}

function main(){
    [ "$(whereis eix | wc -w)" -le "1" ] && { echo "The eix is NOT installed"; exit; }
    [ "$(whereis euscan | wc -w)" -le "1" ] && { echo "The euscan is NOT installed"; exit; }
    case $1 in
        -h|--help)
            help
            ;;
        -r|--repo)
            nofolder "$2" | tee -a "euscan-$(date -I).log"
            ;;
        -f|--folder)
            folder "$2" | tee -a "euscan-$(date -I).log"

            ;;
        *)
        echo "No found variable"; echo; help
    esac
}

main "$@"