From ac177952ab96a624c8256a2a7f634e3d3be7a7fe Mon Sep 17 00:00:00 2001 From: Seppia Date: Sun, 3 Jun 2018 13:12:08 +0200 Subject: Remove and install multiple packages at the same time Added support for removing and installing multiple packages using just one command. --- repo.sh | 52 ++++++++++++++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 20 deletions(-) diff --git a/repo.sh b/repo.sh index 81c743f..edf5d0f 100755 --- a/repo.sh +++ b/repo.sh @@ -32,11 +32,14 @@ clone_package() { } rm_package() { - if [ -d "${SRC_PATH}/$1" ]; then - rm -rf ${SRC_PATH}/$1 - else - echo 'WARNING: Package not present.' - fi + declare -a pkg=("${!1}") + for i in "${pkg[@]}"; do + if [ -d "${SRC_PATH}/$i" ]; then + rm -rf ${SRC_PATH}/$i + else + echo 'WARNING: Package '"$i"' not present.' + fi + done } check_package() { @@ -88,13 +91,16 @@ upgrade_packages() { } install_package() { - if [ -d "${SRC_PATH}/$1" ]; then - cd $(find ${SRC_PATH}/* -type d -prune -iname "*$1") - git pull - makepkg -Csi - else - echo 'WARNING: Package not found.' - fi + declare -a pkg=("${!1}") + for i in "${pkg[@]}"; do + if [ -d "${SRC_PATH}/$i" ]; then + cd $(find ${SRC_PATH}/* -type d -prune -iname "*$i") + git pull + makepkg -Csi + else + echo 'WARNING: Package '"$i"' not found.' + fi + done } update_repo() { @@ -189,12 +195,15 @@ elif [ "$1" == 'clone' ]; then clone_package $2 fi elif [ "$1" == 'rm' ]; then - if [ "$3" != '' ]; then - echo 'ERROR: too many arguments.' - elif [ "$2" == '' ]; then + if [ "$2" == '' ]; then echo 'ERROR: missing argument.' else - rm_package $2 + N=2 + while [ "${!N}" != '' ]; do + packages[$((N-2))]=${!N} + let N=N+1 + done + rm_package packages[@] fi elif [ "$1" == 'check' ]; then if [ "$3" != '' ]; then @@ -241,12 +250,15 @@ elif [ "$1" == 'upgrade' ]; then upgrade_packages fi elif [ "$1" == 'install' ]; then - if [ "$3" != '' ]; then - echo 'ERROR: too many arguments.' - elif [ "$2" == '' ]; then + if [ "$2" == '' ]; then echo 'ERROR: missing argument.' else - install_package $2 + N=2 + while [ "${!N}" != '' ]; do + packages[$((N-2))]=${!N} + let N=N+1 + done + install_package packages[@] fi elif [ "$1" == 'clean' ]; then if [ "$3" != '' ]; then -- cgit v1.2.3