summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO6
-rw-r--r--PKGBUILD12
-rwxr-xr-xpp.sh80
3 files changed, 10 insertions, 88 deletions
diff --git a/.SRCINFO b/.SRCINFO
index d177ba3e69a8..08fc26c6e526 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,14 +1,14 @@
pkgbase = pacman-parallelizer
pkgdesc = A minimal package downloader for pacman, using aria2
pkgver = 8
- pkgrel = 1
+ pkgrel = 2
url = https://github.com/lestofante/PacmanParallelizer
arch = any
license = GPL3
depends = aria2
depends = pacman-contrib
- source = pp.sh
- md5sums = 626c0d5518131fcb5e9b151db1e1d93e
+ source = pacman-parallelizer-8::git+https://github.com/lestofante/PacmanParallelizer.git#tag=8
+ sha256sums = SKIP
pkgname = pacman-parallelizer
diff --git a/PKGBUILD b/PKGBUILD
index 9626eaafdafe..7bb285684eb7 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,22 +1,24 @@
# Maintainer: lesto <lestofante88@gmail.com>
+
pkgname=pacman-parallelizer
pkgver=8
-pkgrel=1
+pkgrel=2
pkgdesc="A minimal package downloader for pacman, using aria2"
arch=(any)
url="https://github.com/lestofante/PacmanParallelizer"
+urlgit="https://github.com/lestofante/PacmanParallelizer.git"
license=('GPL3')
depends=('aria2' 'pacman-contrib')
-source=("pp.sh")
-md5sums=('626c0d5518131fcb5e9b151db1e1d93e')
+source=("$pkgname-$pkgver"::"git+$urlgit#tag=$pkgver")
+sha256sums=('SKIP')
build() {
- cd "$srcdir"
+ cd "$srcdir/$pkgname-$pkgver"
chmod +x ./pp.sh
}
package() {
- cd "$srcdir"
+ cd "$srcdir/$pkgname-$pkgver"
mkdir -p "$pkgdir/usr/bin"
cp pp.sh "$pkgdir/usr/bin"
}
diff --git a/pp.sh b/pp.sh
deleted file mode 100755
index 8efa2e58ba2b..000000000000
--- a/pp.sh
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/bin/bash
-
-arch=$(uname -m)
-maxMirrorForDownload=4
-pacmanCahceDir="$(pacman-conf CacheDir)"
-
-if [[ $UID -ne 0 ]]; then
- sudo -p 'Restarting as root, password: ' bash $0 "$@"
- exit $?
-fi
-
-#read mirrorlist, "Server =" lines, remove all before and including "= " (10 char)
-readarray -t mirrorArray < <(grep "^Server =" /etc/pacman.d/mirrorlist | cut -c 10-)
-
-mirrorArrayLen=${#mirrorArray[@]}
-let maxParallelDownload=$mirrorArrayLen/$maxMirrorForDownload
-echo "mirrorsNumber:$mirrorArrayLen maxParallelDownload:$maxParallelDownload maxMirrorForDownload:$maxMirrorForDownload"
-
-#randomize the order of the mirror
-mirrorArray=( $(shuf -e "${mirrorArray[@]}") )
-
-#now get the list of stuff to update
-readarray -t packageList < <(checkupdates | cut -d ' ' -f 1,4)
-
-pidToWait=()
-pidToWaitStr=""
-mirrorIndex=0
-for pkgNameAndVersion in "${packageList[@]}"; do
- pkgName=${pkgNameAndVersion% *}
-
- repoAndArch=($(pacman -Si $pkgName | grep 'Repository :\|Architecture :' | cut -c 19-))
-
- repo=${repoAndArch[0]}
- archpkg=${repoAndArch[1]}
-
- downloadList=''
- for (( i=0; i<$maxMirrorForDownload; i++ )); do
- mirror=${mirrorArray[mirrorIndex]}
- pkgNameAndVersion=${pkgNameAndVersion/ /-}
- val=${mirror/\$repo/$repo}
- val=$(echo ${val/\$arch/$arch}/$pkgNameAndVersion-$archpkg.pkg.tar.zst)
- downloadList="$downloadList $val"
- ((mirrorIndex++))
- if [[ $mirrorIndex -ge $mirrorArrayLen ]]; then
- mirrorIndex=0
- fi
- done
-
- aria2c -c $downloadList --connect-timeout=1 -s $maxMirrorForDownload -t 1 -d "$pacmanCahceDir" &> /dev/null &
- pidTmp=($!)
- pidToWait+=($pidTmp)
- pidToWaitStr+=" $pidTmp"
-
- running=$(jobs |wc -l)
- echo ">>> $(date +%T) | Downloading $pkgName, $running/$maxParallelDownload download"
-
- while [ $running -ge $maxParallelDownload ]; do
- sleep 0.1 #sleep 0.1 second
- running=$(jobs |wc -l)
- done
-done
-
-#now wait for all remaining jobs
-echo "all download started, waiting for completition of pids: ${pidToWaitStr}"
-
-for pid in "${pidToWait[@]}"; do
- echo "waiting for pid $pid"
- wait $pid
- echo "$pid completed"
-done
-
-if [[ $# -gt 0 ]]; then
- echo "downloads complete, calling $1"
- #DROP PRIVILEDGES
- sudo -s -u $SUDO_USER $1 -Syu --noconfirm
-else
- echo "downloads complete, calling pacman"
- pacman -Syu --noconfirm
-fi
-