summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorpaulbdavis2018-02-25 13:10:34 -0700
committerpaulbdavis2018-02-25 13:10:34 -0700
commitc706211a4cb7affba716cae2319bd30478d30124 (patch)
tree498aed8ca602c8208726fedd2155e4179e519992
parent33a98b269e03ab752b592652fbb15a67aab727d1 (diff)
downloadaur-c706211a4cb7affba716cae2319bd30478d30124.tar.gz
update
-rw-r--r--.SRCINFO4
-rw-r--r--PKGBUILD4
-rw-r--r--reposync.sh48
3 files changed, 48 insertions, 8 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 3d6f8f4b97dc..656823a0b9c7 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index 02b7783b65ef..8a6e5dfb6d60 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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/"