summarylogtreecommitdiffstats
path: root/expressvpn.install
blob: 370234d14a90f4a6e5456fc61630e3058c4f6955 (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
71
72
73
74
75
76
77
78
79
80
81
82
post_install() {
  gen_key
  /usr/bin/printf "----------------------------------------------\n"
  /usr/bin/printf " Start the expressvpn daemon with\n"
  /usr/bin/printf "     # systemctl start expressvpn.service\n"
  /usr/bin/printf " Then activate your expressVPN account with\n"
  /usr/bin/printf "     $ expressvpn activate [activation code]\n"
  /usr/bin/printf " (Your activation code can be found at\n"
  /usr/bin/printf " https://www.expressvpn.com/subscriptions)\n"
  /usr/bin/printf "\n"
  /usr/bin/printf " Once activated, Use 'expressvpn list' to\n"
  /usr/bin/printf " list servers and 'expressvpn connect [id]' \n"
  /usr/bin/printf " to connect to your preferred server.\n"
  /usr/bin/printf " See 'expressvpn help' for more information.\n"
  /usr/bin/printf "----------------------------------------------\n"
}

gen_key() {
  /usr/bin/expressvpnd --workdir "/var/lib/expressvpn/" generate-client-ca > /dev/null 2>&1
  /usr/bin/expressvpnd --workdir "/var/lib/expressvpn/" generate-client-certs > /dev/null 2>&1
  /usr/bin/chmod 644 "/var/lib/expressvpn/certs/client.key" > /dev/null 2>&1
  /usr/bin/rm -f /var/lib/expressvpn/certs/client.req > /dev/null 2>&1
  /usr/bin/rm -f /var/lib/expressvpn/certs/clientca.srl > /dev/null 2>&1
}

post_upgrade() {
  gen_key
  if [ "$(/usr/bin/vercmp 1.2.0 "$2")" -eq 1 ]; then
    /usr/bin/printf "------------------------------------------------------------------------------\n"
    /usr/bin/printf " Upstream now ship a systemd service file with a different name to the one we\n"
    /usr/bin/printf " previously shipped. The new service name is:\n"
    /usr/bin/printf "     'expressvpn.service'\n"
    /usr/bin/printf " Please remember to enable it if you want the service to start at boot.\n"
    /usr/bin/printf " If you had enabled the previous service file please manually remove its\n"
    /usr/bin/printf " symlink:\n"
    /usr/bin/printf "     # rm /etc/systemd/system/multi-user.target.wants/expressvpnd.service\n"
    /usr/bin/printf " Unfortunately, you will need to reactivate your expressvpn after this update\n"
    /usr/bin/printf "------------------------------------------------------------------------------\n"
  fi
  /usr/bin/printf "------------------------------------------------\n"
  /usr/bin/printf " You will need to restart the expressvpn daemon:\n"
  /usr/bin/printf "     # systemctl daemon-reload\n"
  /usr/bin/printf "     # systemctl start expressvpn.service\n"
  /usr/bin/printf "------------------------------------------------\n"
}

post_remove() {
  /usr/bin/rm -f /var/lib/expressvpn/certs/client.key
  /usr/bin/rm -f /var/lib/expressvpn/certs/client.crt
  /usr/bin/rm -f /var/lib/expressvpn/certs/client.p12
  /usr/bin/rm -f /var/lib/expressvpn/certs/clientca.crt
  /usr/bin/rm -f /var/lib/expressvpn/certs/clientca.key
}

pre_remove() {
  # Disconnect before remove. OK to fail.
  if /usr/bin/expressvpn status 2>/dev/null | grep -q Connected; then
	  /usr/bin/expressvpn disconnect > /dev/null 2>&1 || true
  fi

  # Stop engine daemon
  if [ -x /usr/bin/systemctl ]; then
	  /usr/bin/systemctl stop expressvpn &>/dev/null
  fi
}

pre_upgrade() {
  pre_remove
  if grep -q "Generated by expressvpn" /etc/resolv.conf; then
    # reset chattr
    [ -x /usr/bin/chattr ] && /usr/bin/chattr -i /etc/resolv.conf &>/dev/null || true
    
    # restore previous resolv.conf
    bakfile=/var/lib/expressvpn/resolv.conf.orig
    if [ -L "$bakfile" ]; then
      mv "$bakfile" /etc/resolv.conf
    elif [ -f "$bakfile" ]; then
      cat "$bakfile" > /etc/resolv.conf
      rm /var/lib/expressvpn/resolv.conf.orig
    fi
  fi
}