summaryrefslogtreecommitdiff
path: root/scripts/sync/pull.sh
blob: 924499a012ea74174459507addd41f3c4270937c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#! /usr/bin/env sh

set -e

SOURCE="$(cat remote)/"
if [ ! -d $SOURCE ] && [[ ! $SOURCE =~ ":" ]]; then
  echo "Path $SOURCE does not exist."
  exit 1
fi

ARGS=()
FORCE=0
while getopts 'cfdr' opt; do
  case "$opt" in
    c) # Changes
      ARGS+=('--delete')
      ;;
    f) # Full
      ARGS+=('--checksum')
      ;;
    d) # Dry
      ARGS+=('--dry-run')
      ;;
    r) # Revert
      FORCE=1
      ;;
    *)
      echo "Unknown argument"
      exit 1
      ;;
  esac
done

if [ $FORCE = 0 ]; then
  ARGS+=('--update')
fi

rsync --archive --itemize-changes "${ARGS[@]}" $SOURCE/$2 .