upgrade.sh
changeset 760 b678a1c43027
parent 748 659c4476c57c
child 761 e4e656f19771
equal deleted inserted replaced
748:659c4476c57c 760:b678a1c43027
     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