Changing name and license
Signed-off-by: Marcin Woźniak <y0rune@aol.com>
This commit is contained in:
106
src/euscan-parallel
Executable file
106
src/euscan-parallel
Executable file
@ -0,0 +1,106 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# This file is part of scripts.
|
||||
|
||||
# scripts is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
# scripts is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with scripts. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
# Original author: Marcin Woźniak (y0rune@aol.com)
|
||||
# Copyright (c) 2020, src_prepare group
|
||||
# Licensed under the GNU GPL v3 License
|
||||
|
||||
function scanning(){
|
||||
EUSCAN=$(euscan --nocolor --quiet "$1")
|
||||
if [ -n "$EUSCAN" ]; then
|
||||
echo "=============== NOW: $(find ./* -mindepth 2 -maxdepth 2 -name ''"$1"'*.ebuild' | tail -1) =================
|
||||
$(echo -e "$EUSCAN" | tail -1)"
|
||||
fi
|
||||
}
|
||||
|
||||
function folder(){
|
||||
cd "$1" || 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}" &
|
||||
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 "./euscan-parallel -r src_prepare-overlay"
|
||||
echo "./euscan-parallel -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 "$@"
|
Reference in New Issue
Block a user