infra/codestorage/hg-repo-sync
2015-10-11
Parent:cc08c8ed2128
infra/codestorage/hg-repo-sync/push.sh
Use pip to install Mercurial, pin to 3.5.2 We want to use a relatively recent (but consistent) version of Mercurial, so I had to switch to using pip to install Mercurial, so I could pin it to version 3.5.2. apt-get didn't have version 3 available.
| paddy@1 | 1 #!/bin/bash |
| paddy@1 | 2 today=$(date +%F) |
| paddy@1 | 3 |
| paddy@1 | 4 DOMAIN=${DOMAIN:-code.secondbit.org} |
| paddy@1 | 5 BACKUP_BUCKET=${BACKUP_BUCKET:-backups.$DOMAIN} |
| paddy@1 | 6 |
| paddy@1 | 7 echo "Fixing permissions..." |
| paddy@1 | 8 chgrp -R 2000 /mounted/repos |
| paddy@1 | 9 |
| paddy@1 | 10 echo "Cleaning up..." |
| paddy@1 | 11 rm -rf /tmp/repos/* |
| paddy@1 | 12 |
| paddy@1 | 13 repos=$(find /mounted/repos -name .hg -type d) |
| paddy@1 | 14 for repo in $repos |
| paddy@1 | 15 do |
| paddy@1 | 16 dir=$(dirname $repo) |
| paddy@1 | 17 stripped=${dir#.} |
| paddy@1 | 18 stripped=${stripped#/mounted/repos} |
| paddy@1 | 19 target=/tmp/repos/$today$stripped.bundle |
| paddy@1 | 20 mkdir -p $(dirname $target) |
| paddy@1 | 21 hg --cwd $dir bundle --all $target |
| paddy@1 | 22 done |
| paddy@1 | 23 |
| paddy@1 | 24 echo "Pushing bundles to gs://${BACKUP_BUCKET}" |
| paddy@1 | 25 gsutil cp -R /tmp/repos/* gs://${BACKUP_BUCKET}/ |
| paddy@1 | 26 |
| paddy@1 | 27 echo "Cleaning up..." |
| paddy@1 | 28 rm -rf /tmp/repos/* |
| paddy@1 | 29 |
| paddy@1 | 30 echo "Push complete." |