From c6b8602075156e9997d0504fc861f11cd60ab613 Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Thu, 12 Sep 2024 07:53:18 +0200 Subject: initial revision, checking out states and repos --- bin/update | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 bin/update (limited to 'bin/update') diff --git a/bin/update b/bin/update new file mode 100755 index 0000000..31333dc --- /dev/null +++ b/bin/update @@ -0,0 +1,46 @@ +#!/bin/oksh + +BASE="${0%/*}/.." +. "${BASE}/conf/default.conf" + +if test ! -d "${state_dir}"; then + echo "no upstream git state repo of packages.. exiting.." + exit 1 +fi + +if test ! -d "${packages_dir}"; then + echo "no directory for uptream package descriptions.. exiting.." + exit 1 +fi + +git -C "${state_dir}" pull + +find "${state_dir}"/{core,extra}-{any,x86_64} -type f > /tmp/update_packages.$$ +nof_packages=`cat /tmp/update_packages.$$ | wc -l` + +nof_checked_out_packages=`find "${packages_dir}" -type f -name PKGBUILD | wc -l` + +echo "${nof_packages} packages in state repo" +echo "${nof_checked_out_packages} packages are checked out" + +sleep 10 + +for pkgfile in `cat /tmp/update_packages.$$`; do + repo=`echo "${pkgfile}" | rev | cut -f 2 -d / | rev` + OLDIFS="$IFS" + IFS=" " + while read pkgname pkgver tag revision; do + echo "${repo} ${pkgname}" + if test ! -d "${packages_dir}/${repo}/${pkgname}"; then + cd "${packages_dir}/${repo}" || exit 1 + pkgctl repo clone --protocol=https "${pkgname}" + sleep 10 + else + true +# git -C "${packages_dir}/${repo}/${pkgname}" pull + fi + done < $pkgfile + IFS="$OLDIFS" +done +# TODO: update all single package directories +# TODO: update all AUR package directories -- cgit v1.2.3-70-g09d2