Skip to content

Instantly share code, notes, and snippets.

@u8sand
Last active January 20, 2017 03:35
Show Gist options
  • Save u8sand/41abda173a09442939ed6021dd00897d to your computer and use it in GitHub Desktop.
Save u8sand/41abda173a09442939ed6021dd00897d to your computer and use it in GitHub Desktop.
Maintain an updated custom archlinux user repository of local packages (e.g. AUR)
#!/bin/bash
name=sandrepo
remote=sand-pi:/home/sandrepo/http
repo="$name.db.tar.gz"
pkgext=.pkg.tar.xz
blacklist=/home/u8sand/Programs/Utils/blacklist
function update {
cd "$1"
for p in $(pacman -Qqm | grep -vf "$blacklist"); do
v=$(pacman -Qv | awk "/^$p /{print \$2}")
if [[ ! $(ls $p*$v*$pkgext 2>> /dev/null) ]]; then
for o in $(ls $p*$pkgext 2>> /dev/null); do
repo-remove $repo "$o";
rm "$o";
done
bacman "$p";
repo-add $repo "$p"*"$pkgext";
fi
done
cd ..
}
work=$(mktemp -d)
mkdir -p "$work/$name"
sshfs "$remote" "$work/$name"
cd "$work/$name"
update x86_64
cd ..
fusermount -u "$work/$name"
rm -r "$work"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment