aboutsummaryrefslogtreecommitdiff
path: root/unisync-all
blob: 1c80d97d3616a359b825dc5de93ed7cc1ee0b730 (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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/bin/bash
#
# sync code or home folder across systems
#

BASENAME="`basename $0`"
DEST="$1"
UNISON="unison"

# Use the following config if you need to sync with legacy systems
UNISON="unison"

function sync_code_run {
  local config="$1"

  if [ -z "$config" ]; then
    return
  fi

  if [ -f "$HOME/.unison/$config.prf" ]; then
    echo "Starting sync using $config..."
    $UNISON $config
  else
    echo "Skipping absent profile $config."
    return
  fi
}

if [ ! -z "$DEST" ]; then
  profiles=""

  if [ "$BASENAME" == "unisync-code" ] || [ "$BASENAME" == "unisync-all" ]; then
    profiles="$profiles $DEST-code"
  fi

  if [ "$BASENAME" == "unisync-irssi" ] || [ "$BASENAME" == "unisync-all" ]; then
    profiles="$profiles $DEST-irssi"
  fi

  if [ "$BASENAME" == "unisync-irssi-tor" ] || [ "$BASENAME" == "unisync-all" ]; then
    profiles="$profiles $DEST-irssi-tor"
  fi

  if [ "$BASENAME" == "unisync-home" ] || [ "$BASENAME" == "unisync-all" ]; then
    profiles="$profiles $DEST-home"
  fi

  for profile in $profiles; do
    sync_code_run $profile
  done
else
  echo "Available profiles:"
  echo ""
  ( cd $HOME/.unison && ls *.prf )
fi