diff options
author | paulbdavis | 2018-02-25 13:10:34 -0700 |
---|---|---|
committer | paulbdavis | 2018-02-25 13:10:34 -0700 |
commit | c706211a4cb7affba716cae2319bd30478d30124 (patch) | |
tree | 498aed8ca602c8208726fedd2155e4179e519992 | |
parent | 33a98b269e03ab752b592652fbb15a67aab727d1 (diff) | |
download | aur-c706211a4cb7affba716cae2319bd30478d30124.tar.gz |
update
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | PKGBUILD | 4 | ||||
-rw-r--r-- | reposync.sh | 48 |
3 files changed, 48 insertions, 8 deletions
@@ -1,6 +1,6 @@ pkgbase = reposync pkgdesc = Wrapper for aursync - pkgver = 0.0.7 + pkgver = 0.0.8 pkgrel = 1 arch = any license = MIT @@ -9,7 +9,7 @@ pkgbase = reposync depends = bash depends = s3fs-fuse source = reposync.sh - sha256sums = 94095385e1bb847c900cb2aaa05a5fc3e694b688f9d7a96bf901b39e2d46cb95 + sha256sums = 3280aaba81eb6ea83599fc16667558f3795f2900f19110b9fa3afee6e2c0a374 pkgname = reposync @@ -1,12 +1,12 @@ # Maintainer: Paul Davis <paul@dangersalad.com> pkgname=reposync -pkgver=0.0.7 +pkgver=0.0.8 pkgrel=1 arch=('any') license=('MIT') source=(reposync.sh) pkgdesc="Wrapper for aursync" -sha256sums=('94095385e1bb847c900cb2aaa05a5fc3e694b688f9d7a96bf901b39e2d46cb95') +sha256sums=('3280aaba81eb6ea83599fc16667558f3795f2900f19110b9fa3afee6e2c0a374') depends=('aurutils' 'sudo' 'bash' 's3fs-fuse') package () { diff --git a/reposync.sh b/reposync.sh index d07b0fdd17e8..d630afe6c644 100644 --- a/reposync.sh +++ b/reposync.sh @@ -1,13 +1,18 @@ #!/usr/bin/env bash # Wraps aursync command to mount an amazon s3 bucket which contains a repository -cfg_name=dangersalad-reposync.config -cfg_file="${DANGERSALAD_REPOSYNC_CONFIG:-/etc/xdg/$cfg_name}" +cfg_name=reposync.conf +cfg_file="${REPOSYNC_CONFIG:-/etc/xdg/$cfg_name}" cfg_file_system="$cfg_file" +local_repo="$HOME/.cache/reposync" + +do_rsync="rsync -acv --append" set -uo pipefail trap 's=$?; echo "$0: Error on line "$LINENO": $BASH_COMMAND"; exit $s' ERR +mkdir -p "$local_repo" + if [[ ! -f $cfg_file ]] then cfg_file="${XDG_CONFIG_HOME:-$HOME/.config}/$cfg_name" @@ -29,10 +34,45 @@ defer "rmdir '$repo'" s3fs "${bucket}" "$repo" -o "nosuid,nodev,default_acl=public-read,url=$bucket_url,nomultipart" defer "fusermount -u '$repo'" -mkdir -p "$repo/${repo_path}" +remote_repo="$repo/${repo_path}" +mkdir -p "${remote_repo}" + +echo "Syncing remote repo to local" +echo "$remote_repo/ -> $local_repo/" +$do_rsync "$remote_repo/" "$local_repo/" + +echo "Ensuring database" +db_local_name="${repo_name}.db.tar.gz" +db_remote_name="${repo_name}.db" +files_local_name="${repo_name}.files.tar.gz" +files_remote_name="${repo_name}.files" + +( + cd "$local_repo" + mv "$db_remote_name" "$db_local_name" + rm -f "$files_local_name" + for pkg in *.pkg.tar.xz + do + if [[ ! -f "${pkg}.sig" ]] + then + echo "Signing $pkg" + gpg --output "${pkg}.sig" --detach-sign "$pkg" + fi + echo "Adding $pkg" + repo-add "$db_local_name" "$pkg" + done + gpg --output "${db_remote_name}.sig" --detach-sign "$db_local_name" + gpg --output "${files_remote_name}.sig" --detach-sign "$files_local_name" + mv "$db_local_name" "$db_remote_name" + mv "$files_local_name" "$files_remote_name" +) echo "Performing system update" sudo pacman -Syu echo "Performing repository sync" -aursync --sign --repo "$repo_name" --root "$repo/$repo_path" "$@" +aursync --sign --repo "$repo_name" --root "$local_repo" -u $@ + +echo "Syncing local repo to remote" +echo "$local_repo/ -> $remote_repo/" +$do_rsync "$local_repo/" "$remote_repo/" |