1 #!/bin/sh |
|
2 # |
|
3 # Upgrade script for the Virtual Mail Manager |
|
4 # run: ./upgrade.sh |
|
5 |
|
6 LANG=C |
|
7 PATH=/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin |
|
8 PREFIX=/usr/local |
|
9 |
|
10 DOVECOT_VERS=$(dovecot --version | awk '{print $1}') |
|
11 LOCALE_DIR=${PREFIX}/share/locale |
|
12 DOC_DIR=${PREFIX}/share/doc/vmm |
|
13 if [ ${PREFIX} = "/usr" ]; then |
|
14 MANDIR=${PREFIX}/share/man |
|
15 else |
|
16 MANDIR=${PREFIX}/man |
|
17 fi |
|
18 DOCS="ChangeLog Configure.Dovecot_2 COPYING INSTALL NEWS README" |
|
19 |
|
20 INSTALL_OPTS="-g 0 -o 0 -p" |
|
21 |
|
22 if [ $(id -u) -ne 0 ]; then |
|
23 echo "Run this script as root." |
|
24 exit 1 |
|
25 fi |
|
26 |
|
27 # update config file before installing the new files. |
|
28 ./update_config.py ${DOVECOT_VERS:-'1.2.11'} |
|
29 rv=$? |
|
30 if [ $rv -eq 2 ]; then |
|
31 echo "please run the install.sh script" |
|
32 exit 1 |
|
33 elif [ $rv -eq 3 ]; then |
|
34 echo "please read the upgrade instructions at http://vmm.localdomain.org/" |
|
35 exit 1 |
|
36 elif [ $rv -ne 0 ]; then |
|
37 echo "Sorry, something went wrong. Please file a bug at:" |
|
38 echo "https://bitbucket.org/pvo/vmm/issues" |
|
39 exit 1 |
|
40 fi |
|
41 |
|
42 # remove old CamelCase files |
|
43 if [ -f /tmp/vmm_inst_dir ] ; then |
|
44 rm -rf `cat /tmp/vmm_inst_dir` |
|
45 rm -f /tmp/vmm_inst_dir |
|
46 fi |
|
47 |
|
48 python setup.py -q install --force --prefix ${PREFIX} |
|
49 python setup.py clean --all >/dev/null |
|
50 |
|
51 install -m 0700 ${INSTALL_OPTS} vmm ${PREFIX}/sbin |
|
52 |
|
53 [ -d ${LOCALE_DIR} ] || mkdir -m 0755 -p ${LOCALE_DIR} |
|
54 cd po |
|
55 for po in $(ls -1 *.po); do |
|
56 lang=$(basename ${po} .po) |
|
57 ddir=${LOCALE_DIR}/${lang}/LC_MESSAGES |
|
58 [ -d ${ddir} ] || mkdir -m 0755 -p ${ddir} |
|
59 msgfmt -o ${LOCALE_DIR}/${lang}/LC_MESSAGES/vmm.mo ${po} |
|
60 done |
|
61 cd - >/dev/null |
|
62 |
|
63 # install manual pages |
|
64 cd man |
|
65 [ -d ${MANDIR}/man1 ] || mkdir -m 0755 -p ${MANDIR}/man1 |
|
66 install -m 0644 ${INSTALL_OPTS} man1/vmm.1 ${MANDIR}/man1 |
|
67 |
|
68 [ -d ${MANDIR}/man5 ] || mkdir -m 0755 -p ${MANDIR}/man5 |
|
69 install -m 0644 ${INSTALL_OPTS} man5/vmm.cfg.5 ${MANDIR}/man5 |
|
70 |
|
71 for l in $(find . -maxdepth 1 -mindepth 1 -type d \! -name man\?) |
|
72 do |
|
73 for s in man1 man5; do |
|
74 [ -d ${MANDIR}/${l}/${s} ] || mkdir -m 0755 -p ${MANDIR}/${l}/${s} |
|
75 done |
|
76 if [ -f ${l}/man1/vmm.1 ]; then |
|
77 install -m 0644 ${INSTALL_OPTS} ${l}/man1/vmm.1 ${MANDIR}/${l}/man1 |
|
78 fi |
|
79 if [ -f ${l}/man5/vmm.cfg.5 ]; then |
|
80 install -m 0644 ${INSTALL_OPTS} ${l}/man5/vmm.cfg.5 ${MANDIR}/${l}/man5 |
|
81 fi |
|
82 done |
|
83 cd - >/dev/null |
|
84 |
|
85 [ -d ${DOC_DIR} ] || mkdir -m 0755 -p ${DOC_DIR} |
|
86 for DOC in ${DOCS}; do |
|
87 install -m 0644 ${INSTALL_OPTS} ${DOC} ${DOC_DIR} |
|
88 done |
|
89 |
|
90 [ -d ${DOC_DIR}/examples ] || mkdir -m 0755 -p ${DOC_DIR}/examples |
|
91 install -m 0644 ${INSTALL_OPTS} postfix/pgsql-*.cf ${DOC_DIR}/examples |
|
92 install -m 0644 ${INSTALL_OPTS} vmm.cfg ${DOC_DIR}/examples |
|
93 |
|