From ab184775e79a780eb2a32d67260756d8a9b4258d Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Fri, 30 Sep 2016 16:40:07 -0300 Subject: Renames sync-media-init to sync-media-initremotes --- files/sync-media-init | 92 -------------------------------------------- files/sync-media-initremotes | 92 ++++++++++++++++++++++++++++++++++++++++++++ manifests/init.pp | 10 ++++- 3 files changed, 101 insertions(+), 93 deletions(-) delete mode 100755 files/sync-media-init create mode 100755 files/sync-media-initremotes diff --git a/files/sync-media-init b/files/sync-media-init deleted file mode 100755 index 839deea..0000000 --- a/files/sync-media-init +++ /dev/null @@ -1,92 +0,0 @@ -#!/bin/bash -# -# Add git-annex remotes to repository in removable media or local cache. -# - -# Parameters -BASENAME="`basename $0`" -VOLUME="$1" -TYPES="$2" -DOMAIN="`facter DOMAIN`" -HOST="`facter hostname`" -CACHES="" -VOLUMES="" -BOXES="" - -# Fix identity -function sync_media_identity { - if [ -z "`git config --local user.email`" ] || [ -z "`git config --local user.name`" ]; then - repo="$(basename `pwd`)" - git config user.name "${repo^} Archive" - git config user.email "$repo@localhost" - fi -} - -# Syntax check -if [ -z "$VOLUME" ]; then - echo "usage: $BASENAME [ [remotes]]" - exit 1 -fi - -# Determine media folder -if [ "$VOLUME" == "$HOST" ] || [ "$VOLUME" == "localhost" ]; then - MEDIA="/var/cache/media" -else - MEDIA="/media/$VOLUME/media.$DOMAIN" -fi - -# Determine remote type -shift 2 -if [ "$TYPES" == 'caches' ]; then - # Remotes are caches of local boxes - CACHES="$*" -elif [ "$TYPES" == 'volumes' ]; then - # Remotes are removable media - VOLUMES="$*" -elif [ "$TYPES" == 'boxes' ]; then - # Remotes are remote boxes - BOXES="$*" -fi - -# Process each repository -for file in `ls $MEDIA`; do - if [ -d "$MEDIA/$file/.git" ]; then - ( - echo Processing "$MEDIA/$file..." - cd $MEDIA/$file - sync_media_identity - - if git remote | grep -q "^origin$"; then - echo "Removing origin..." - git remote rm origin - fi - - if [ ! -d "$MEDIA/$file/.git/annex" ]; then - git annex init $VOLUME - fi - - for remote in $CACHES; do - echo "Adding /var/cache/$remote/media/$file remote..." - git remote add $remote /var/cache/$remote/media/$file - done - - for remote in $VOLUMES; do - echo "Adding /media/$remote/media.$DOMAIN/$file..." - git remote add $remote /media/$remote/media.$DOMAIN/$file - done - - for remote in $BOXES; do - if ! echo $remote | grep -q '\.'; then - host="$remote.$DOMAIN" - else - host="$remote" - fi - - echo "Adding ssh://$host/var/cache/media/$file..." - git remote add $remote ssh://$host/var/cache/media/$file - done - - echo "" - ) - fi -done diff --git a/files/sync-media-initremotes b/files/sync-media-initremotes new file mode 100755 index 0000000..839deea --- /dev/null +++ b/files/sync-media-initremotes @@ -0,0 +1,92 @@ +#!/bin/bash +# +# Add git-annex remotes to repository in removable media or local cache. +# + +# Parameters +BASENAME="`basename $0`" +VOLUME="$1" +TYPES="$2" +DOMAIN="`facter DOMAIN`" +HOST="`facter hostname`" +CACHES="" +VOLUMES="" +BOXES="" + +# Fix identity +function sync_media_identity { + if [ -z "`git config --local user.email`" ] || [ -z "`git config --local user.name`" ]; then + repo="$(basename `pwd`)" + git config user.name "${repo^} Archive" + git config user.email "$repo@localhost" + fi +} + +# Syntax check +if [ -z "$VOLUME" ]; then + echo "usage: $BASENAME [ [remotes]]" + exit 1 +fi + +# Determine media folder +if [ "$VOLUME" == "$HOST" ] || [ "$VOLUME" == "localhost" ]; then + MEDIA="/var/cache/media" +else + MEDIA="/media/$VOLUME/media.$DOMAIN" +fi + +# Determine remote type +shift 2 +if [ "$TYPES" == 'caches' ]; then + # Remotes are caches of local boxes + CACHES="$*" +elif [ "$TYPES" == 'volumes' ]; then + # Remotes are removable media + VOLUMES="$*" +elif [ "$TYPES" == 'boxes' ]; then + # Remotes are remote boxes + BOXES="$*" +fi + +# Process each repository +for file in `ls $MEDIA`; do + if [ -d "$MEDIA/$file/.git" ]; then + ( + echo Processing "$MEDIA/$file..." + cd $MEDIA/$file + sync_media_identity + + if git remote | grep -q "^origin$"; then + echo "Removing origin..." + git remote rm origin + fi + + if [ ! -d "$MEDIA/$file/.git/annex" ]; then + git annex init $VOLUME + fi + + for remote in $CACHES; do + echo "Adding /var/cache/$remote/media/$file remote..." + git remote add $remote /var/cache/$remote/media/$file + done + + for remote in $VOLUMES; do + echo "Adding /media/$remote/media.$DOMAIN/$file..." + git remote add $remote /media/$remote/media.$DOMAIN/$file + done + + for remote in $BOXES; do + if ! echo $remote | grep -q '\.'; then + host="$remote.$DOMAIN" + else + host="$remote" + fi + + echo "Adding ssh://$host/var/cache/media/$file..." + git remote add $remote ssh://$host/var/cache/media/$file + done + + echo "" + ) + fi +done diff --git a/manifests/init.pp b/manifests/init.pp index 8dc43f4..b5ba119 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -161,11 +161,19 @@ class backup( # sync-media-init script file { "/usr/local/sbin/sync-media-init": + owner => root, + group => root, + mode => 0755, + ensure => absent, + } + + # sync-media-init script + file { "/usr/local/sbin/sync-media-initremotes": owner => root, group => root, mode => 0755, ensure => present, - source => "puppet:///modules/backup/sync-media-init", + source => "puppet:///modules/backup/sync-media-initremotes", } # mount-media script -- cgit v1.2.3