diff --git a/install_sympa.sh b/install_sympa.sh index 7f4791b..a85161f 100755 --- a/install_sympa.sh +++ b/install_sympa.sh @@ -739,19 +739,21 @@ if $UPDATE_SYMPA ; then CURRENT_SYMPA_LIST_DATA_BASE_PATH="$(dirname "$CURRENT_SYMPA_LIST_DATA_DIR")" CURRENT_SYMPA_LIST_DATA_ROOT_DIR="$(dirname "$CURRENT_SYMPA_LIST_DATA_BASE_PATH")" if [[ -h "${CURRENT_SYMPA_LIST_DATA_ROOT_DIR}/sympa" ]]; then - CURRENT_SYMPA_LIST_DATA_SYMLINK="${CURRENT_SYMPA_LIST_DATA_ROOT_DIR}/sympa" + CURRENT_SYMPA_LIST_DATA_BASE_SYMLINK="${CURRENT_SYMPA_LIST_DATA_ROOT_DIR}/sympa" + CURRENT_SYMPA_LIST_DATA_SYMLINK="${CURRENT_SYMPA_LIST_DATA_ROOT_DIR}/sympa/list_data" fi SYMPA_LIST_DATA_DIR="${CURRENT_SYMPA_LIST_DATA_ROOT_DIR}/sympa-${SYMPA_VERSION}/list_data" SYMPA_LIST_DATA_BASE_PATH="$(dirname "$SYMPA_LIST_DATA_DIR")" SYMPA_LIST_DATA_ROOT_DIR="$(dirname "$SYMPA_LIST_DATA_BASE_PATH")" - SYMPA_LIST_DATA_SYMLINK="${CURRENT_SYMPA_LIST_DATA_ROOT_DIR}/sympa" + SYMPA_LIST_DATA_BASE_SYMLINK="${CURRENT_SYMPA_LIST_DATA_ROOT_DIR}/sympa" + SYMPA_LIST_DATA_SYMLINK="${CURRENT_SYMPA_LIST_DATA_ROOT_DIR}/sympa/list_data" else echo "" echo "--" echo "" - echo "Specify root directory containing Sympa's list data directories." + echo "Specify root directory containing Sympa's list data and archive directories." echo "" SYMPA_LIST_DATA_ROOT_DIR= echononl "Sympa's list data directory [${DEFAULT_SYMPA_LIST_DATA_ROOT_DIR}]: " @@ -762,9 +764,15 @@ else SYMPA_LIST_DATA_DIR="${SYMPA_LIST_DATA_ROOT_DIR}/sympa-${SYMPA_VERSION}/list_data" SYMPA_LIST_DATA_BASE_PATH="$(dirname "$SYMPA_LIST_DATA_DIR")" - SYMPA_LIST_DATA_SYMLINK="${SYMPA_LIST_DATA_ROOT_DIR}/sympa" + SYMPA_LIST_DATA_BASE_SYMLINK="${SYMPA_LIST_DATA_ROOT_DIR}/sympa" + SYMPA_LIST_DATA_SYMLINK="${SYMPA_LIST_DATA_ROOT_DIR}/sympa/list_data" fi +# - Want list 'archive path' parallel to 'list data' path +# - +SYMPA_LIST_ARC_PATH="${SYMPA_LIST_DATA_BASE_PATH}/arc" +SYMPA_LIST_ARC_SYMLINK="$(dirname "$SYMPA_LIST_DATA_SYMLINK")/arc" + if $SYSTEMD_SUPPORTED ; then echo "" @@ -1306,6 +1314,9 @@ echo "Sympa's Data base path..........: $SYMPA_LIST_DATA_BASE_PATH" echo "Sympa's Data root dirctory......: $SYMPA_LIST_DATA_ROOT_DIR" echo "Sympa's Data directory symlink..: $SYMPA_LIST_DATA_SYMLINK" echo "" +echo "Sympa's list archive path.......: $SYMPA_LIST_ARC_PATH" +echo "Sympa's list archive symlink....: $SYMPA_LIST_ARC_SYMLINK" +echo "" echo "Sympa's aliases file............: $SYMPA_ALIAS_FILE" if ! $UPDATE_SYMPA ; then echo "" @@ -1460,6 +1471,9 @@ echo "## - Sympa's Data base path............: $SYMPA_LIST_DATA_BASE_PATH" >> $_ echo "## - Sympa's Data root dirctory........: $SYMPA_LIST_DATA_ROOT_DIR" >> $_log_file echo "## - Sympa's Data directory symlink....: $SYMPA_LIST_DATA_SYMLINK" >> $_log_file echo "## -" >> $_log_file +echo "## - Sympa's list archive path.........: $SYMPA_LIST_ARC_PATH" >> $_log_file +echo "## - Sympa's list archive symlink......: $SYMPA_LIST_ARC_SYMLINK" >> $_log_file +echo "## -" >> $_log_file echo "## - Sympa's aliases file..............: $SYMPA_ALIAS_FILE" >> $_log_file echo "## -" >> $_log_file if ! $UPDATE_SYMPA ; then @@ -1523,6 +1537,7 @@ if $UPDATE_SYMPA ; then echo "CURRENT_SYMPA_LIST_DATA_DIR=$CURRENT_SYMPA_LIST_DATA_DIR" >> $_log_file echo "CURRENT_SYMPA_LIST_DATA_BASE_PATH=$CURRENT_SYMPA_LIST_DATA_BASE_PATH" >> $_log_file echo "CURRENT_SYMPA_LIST_DATA_ROOT_DIR=$CURRENT_SYMPA_LIST_DATA_ROOT_DIR" >> $_log_file + echo "CURRENT_SYMPA_LIST_DATA_BASE_SYMLINK=$CURRENT_SYMPA_LIST_DATA_BASE_SYMLINK" >> $_log_file echo "CURRENT_SYMPA_LIST_DATA_SYMLINK=$CURRENT_SYMPA_LIST_DATA_SYMLINK" >> $_log_file fi echo "SYMPA_VERSION=$SYMPA_VERSION" >> $_log_file @@ -1549,8 +1564,12 @@ echo "" >> $_log_file echo "SYMPA_LIST_DATA_DIR=$SYMPA_LIST_DATA_DIR" >> $_log_file echo "SYMPA_LIST_DATA_BASE_PATH=$SYMPA_LIST_DATA_BASE_PATH" >> $_log_file echo "SYMPA_LIST_DATA_ROOT_DIR=$SYMPA_LIST_DATA_ROOT_DIR" >> $_log_file +echo "SYMPA_LIST_DATA_BASE_SYMLINK=$SYMPA_LIST_DATA_BASE_SYMLINK" >> $_log_file echo "SYMPA_LIST_DATA_SYMLINK=$SYMPA_LIST_DATA_SYMLINK" >> $_log_file echo "" >> $_log_file +echo "SYMPA_LIST_ARC_PATH=$SYMPA_LIST_ARC_PATH" >> $_log_file +echo "SYMPA_LIST_ARC_SYMLINK=$SYMPA_LIST_ARC_SYMLINK" >> $_log_file +echo "" >> $_log_file echo "SYMPA_ALIAS_FILE=$SYMPA_ALIAS_FILE" >> $_log_file echo "" >> $_log_file echo "SYMPA_DOMAIN=$SYMPA_DOMAIN" >> $_log_file @@ -2238,7 +2257,7 @@ else ## --- Handle Sympa's List Data Directory ## --- - if [[ "$CURRENT_SYMPA_LIST_DATA_BASE_PATH" = "$SYMPA_LIST_DATA_SYMLINK" ]]; then + if [[ "$CURRENT_SYMPA_LIST_DATA_BASE_PATH" = "$SYMPA_LIST_DATA_BASE_SYMLINK" ]]; then echo -e "\tMove current data base directory ($CURRENT_SYMPA_LIST_DATA_BASE_PATH) to directory" echononl "\t '${CURRENT_SYMPA_LIST_DATA_BASE_PATH}-${SYMPA_OLD_VERSION}' .." echo "## - Move current data base directory ($CURRENT_SYMPA_LIST_DATA_BASE_PATH) to directory" >> $_log_file @@ -2641,6 +2660,8 @@ if ! $UPDATE_SYMPA ; then fi fi + + #if $UPDATE_SYMPA ; then # # _successfully=true @@ -2715,6 +2736,59 @@ fi fi #fi +if ! $UPDATE_SYMPA ; then + + # - Create directory for list archives + # - + echononl "\tCreate Directory '$SYMPA_LIST_ARC_PATH'.." + if [[ ! -d "$SYMPA_LIST_ARC_PATH" ]]; then + echo "" >> $_log_file + echo "## - Create directory '$SYMPA_LIST_ARC_PATH' for list archives" >> $_log_file + echo "## -" >> $_log_file + echo "mkdir \"$SYMPA_LIST_ARC_PATH\"" >> $_log_file + mkdir "$SYMPA_LIST_ARC_PATH" >> $_log_file 2>&1 + if [[ $? -eq 0 ]] ; then + echo_ok + else + echo_failed + error "Cannot create directory '$SYMPA_LIST_ARC_PATH'!" + + echononl "continue anyway [yes/no]: " + read OK + OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')" + while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do + echononl "Wrong entry! - repeat [yes/nno]: " + read OK + done + [[ $OK = "yes" ]] || fatal "Abbruch durch User" + + fi + else + echo_skipped + fi + +else + + if [[ ! -d "$SYMPA_LIST_ARC_PATH" ]]; then + + error "Directory '$SYMPA_LIST_ARC_PATH' for list archives does not exists, but sympa + is configured to use this directory + + Maybe your list archive dir is located at '/usr/local/sympa-${SYMPA_OLD_VERSION}/arc' and you + have to move it to '$SYMPA_LIST_ARC_PATH'" + + echononl "continue anyway [yes/no]: " + read OK + OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')" + while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do + echononl "Wrong entry! - repeat [yes/nno]: " + read OK + done + [[ $OK = "yes" ]] || fatal "Abbruch durch User" + + fi +fi + echo "" >> $_log_file echo "## - Install (or upgrade) required and recommended dependent modules.." >> $_log_file @@ -2854,6 +2928,9 @@ else fi +# - + + # - Create Symlink $SYMPA_BASE_PATH --> $SYMPA_INSTALL_DIR # - echononl "\tRemove existing symlink '$SYMPA_BASE_PATH'.." @@ -2907,20 +2984,20 @@ else fi -# - Create Symlink $SYMPA_LIST_DATA_SYMLINK --> $SYMPA_LIST_DATA_BASE_PATH +# - Create Symlink $SYMPA_LIST_DATA_BASE_SYMLINK --> $SYMPA_LIST_DATA_BASE_PATH # - -echononl "\tRemove existing symlink '$SYMPA_LIST_DATA_SYMLINK'.." -if [[ -h "$SYMPA_LIST_DATA_SYMLINK" ]] ; then +echononl "\tRemove existing symlink '$SYMPA_LIST_DATA_BASE_SYMLINK'.." +if [[ -h "$SYMPA_LIST_DATA_BASE_SYMLINK" ]] ; then echo "" >> $_log_file - echo "## - Remove existing symlink '$SYMPA_LIST_DATA_SYMLINK'.." >> $_log_file + echo "## - Remove existing symlink '$SYMPA_LIST_DATA_BASE_SYMLINK'.." >> $_log_file echo "## -" >> $_log_file - echo "rm \"$SYMPA_LIST_DATA_SYMLINK\"" >> $_log_file - rm "$SYMPA_LIST_DATA_SYMLINK" >> $_log_file 2>&1 + echo "rm \"$SYMPA_LIST_DATA_BASE_SYMLINK\"" >> $_log_file + rm "$SYMPA_LIST_DATA_BASE_SYMLINK" >> $_log_file 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed - error "Removing symlink '$SYMPA_LIST_DATA_SYMLINK' failed! \n + error "Removing symlink '$SYMPA_LIST_DATA_BASE_SYMLINK' failed! \n See '$_log_file' for further informations." echononl "\tcontinue anyway [yes/no]: " read OK @@ -2936,17 +3013,17 @@ else echo_skipped fi -echononl "\tCreate Symlink $SYMPA_LIST_DATA_SYMLINK --> $SYMPA_LIST_DATA_BASE_PATH" +echononl "\tCreate Symlink $SYMPA_LIST_DATA_BASE_SYMLINK --> $SYMPA_LIST_DATA_BASE_PATH" echo "" >> $_log_file -echo "## - Create Symlink $SYMPA_LIST_DATA_SYMLINK --> $SYMPA_LIST_DATA_BASE_PATH.." >> $_log_file +echo "## - Create Symlink $SYMPA_LIST_DATA_BASE_SYMLINK --> $SYMPA_LIST_DATA_BASE_PATH.." >> $_log_file echo "## -" >> $_log_file -echo "ln -s \"$(basename $SYMPA_LIST_DATA_BASE_PATH)\" \"$SYMPA_LIST_DATA_SYMLINK\"" >> $_log_file -ln -s "$(basename $SYMPA_LIST_DATA_BASE_PATH)" "$SYMPA_LIST_DATA_SYMLINK" >> $_log_file 2>&1 +echo "ln -s \"$(basename $SYMPA_LIST_DATA_BASE_PATH)\" \"$SYMPA_LIST_DATA_BASE_SYMLINK\"" >> $_log_file +ln -s "$(basename $SYMPA_LIST_DATA_BASE_PATH)" "$SYMPA_LIST_DATA_BASE_SYMLINK" >> $_log_file 2>&1 if [ "$?" = "0" ]; then echo_ok else echo_failed - error "Creating symlink '$SYMPA_LIST_DATA_SYMLINK' failed! \n + error "Creating symlink '$SYMPA_LIST_DATA_BASE_SYMLINK' failed! \n See '$_log_file' for further informations." echononl "continue anyway [yes/no]: " read OK @@ -3075,7 +3152,23 @@ else fi _key=home - _val="$SYMPA_LIST_DATA_DIR" + _val="$SYMPA_LIST_DATA_SYMLINK" + echo "" >> $_log_file + echo "## - Set \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .." >> $_log_file + echo "## -" >> $_log_file + echononl "\tSet \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .." + echo "perl -i -n -p -e \"s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#\" ${SYMPA_MAIN_CONF_DIR}/sympa.conf" >> $_log_file + perl -i -n -p -e "s#^(\s*\#\s*${_key}.*)#\1\n$_key\t$_val#" ${SYMPA_MAIN_CONF_DIR}/sympa.conf >> $_log_file 2>&1 + if [ "$?" = "0" ]; then + echo_ok + else + echo_failed + fatal "Cannot set \"$_key\" in file \"${SYMPA_MAIN_CONF_DIR}/sympa.conf\"! \n + See '${_log_file}' for further informations." + fi + + _key=arc_path + _val="$SYMPA_LIST_ARC_SYMLINK" echo "" >> $_log_file echo "## - Set \"$_key\" in file ${SYMPA_MAIN_CONF_DIR}/sympa.conf .." >> $_log_file echo "## -" >> $_log_file