summarylogtreecommitdiffstats
path: root/dgraph-bin.install
blob: c8f6559a83116be6bb9a57c7335fa525bcd9eba1 (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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
_prepare_for_upstream_systemd_services() {
  # ensure "new" data directories don't already exist before we create
  # them in order to avoid overwriting data
  if [ ! -e /var/lib/dgraph/p ] && \
     [ ! -e /var/lib/dgraph/w ] && \
     [ ! -e /var/lib/dgraph/zw ]; then
    # check for existence of "old" data directories from before the
    # upstream systemd service files were used
    # (package version <= 20.11.2-1)
    if [ ! -e /var/lib/dgraph/data/p ] && \
       [ ! -e /var/lib/dgraph/data/w ] && \
       [ ! -e /var/lib/dgraph/data/zw ]; then
      echo ">> Filesystem matches expected CLEAN state, running " \
           "script to prepare for upstream systemd services"
      usr/share/dgraph/add_dgraph_account.sh
    elif [ -d /var/lib/dgraph/data/p ] && \
         [ -d /var/lib/dgraph/data/w ] && \
         [ -d /var/lib/dgraph/data/zw ]; then
      echo ">> Filesystem matches expected OLD state, running script " \
           "to prepare for upstream systemd services AND moving" \
           "existing data"
      usr/share/dgraph/add_dgraph_account.sh
      mv /var/lib/dgraph/data/{p,w,zw} /var/lib/dgraph/
      # this will error if other items remain in /var/lib/dgraph/data/
      rmdir /var/lib/dgraph/data
    else
      # at least one of /var/lib/dgraph/data/{p,w,zw} exists but isn't a
      # directory
      echo ">> Existing OLD data directories don't match " \
           "expectations, quitting!"
      exit 1
    fi
  # ensure filesystem matches expectations so binaries can run properly
  elif [ -d /var/lib/dgraph/p ] && \
       [ -d /var/lib/dgraph/w ] && \
       [ -d /var/lib/dgraph/zw ] && \
       [[ $(stat -c '%U' /var/lib/dgraph/p) == "dgraph" ]] && \
       [[ $(stat -c '%U' /var/lib/dgraph/w) == "dgraph" ]] && \
       [[ $(stat -c '%U' /var/lib/dgraph/zw) == "dgraph" ]] && \
       [[ $(stat -c '%G' /var/lib/dgraph/p) == "dgraph" ]] && \
       [[ $(stat -c '%G' /var/lib/dgraph/w) == "dgraph" ]] && \
       [[ $(stat -c '%G' /var/lib/dgraph/zw) == "dgraph" ]]; then
    echo ">> Filesystem matches expected NEW state, no need to run" \
         "script to transition to upstream systemd services"
  else
    # at least one of /var/lib/dgraph/{p,w,zw} exists but isn't a
    # directory owned by dgraph:dgraph
    echo ">> Existing NEW data directories don't match expectations," \
         "quitting!"
    exit 2
  fi
}

## arg 1:  the new package version
post_install() {
  _prepare_for_upstream_systemd_services
}

## arg 1:  the new package version
## arg 2:  the old package version
post_upgrade() {
  _prepare_for_upstream_systemd_services
}

post_remove() {
  echo ">> There are still files related to dgraph-bin at " \
       "/var/{lib,log}/dgraph, plus a dgraph user and group"
}

# vim:set ts=2 sw=2 et: