Merge branch 'contrib' into 'master'
[mailer.git] / contrib / updater / .functions.sh
diff --git a/contrib/updater/.functions.sh b/contrib/updater/.functions.sh
new file mode 100755 (executable)
index 0000000..1c6ce3f
--- /dev/null
@@ -0,0 +1,582 @@
+#!/bin/sh
+# Self-test
+if test "`basename $0`" = ".functions.sh"; then
+       echo "Bye..."
+       exit 0
+fi
+
+function ftp_init()
+{
+       if test "$FTP_PASS" = ""; then
+               echo "No FTP password file '$FTP_PSWD'.. Creating one"
+               echo -n "Enter password to continue: "
+               read -s pass1
+               echo "okay"
+               echo -n "Enter password again to confirm: "
+               read -s pass2
+               echo "okay"
+               if test "$pass1" = "$pass2"; then
+                       if test ! "$pass1" = ""; then
+                               echo -n "Creating password file ($FTP_PSWD)... "
+                               echo -n "$pass1">$FTP_PSWD
+                               FTP_PASS="`cat $FTP_PSWD >/dev/null 2>&1`"
+                               echo "done"
+                        else
+                               echo "Empty password entered!"
+                               exit 0
+                       fi
+                else
+                       echo "Passwords didn't match!"
+                       exit 0
+               fi
+        else
+               echo "FTP password loaded from file $FTP_PSWD."
+       fi
+}
+
+function ftp_upload()
+{
+       cd $UPLOAD_DIR
+       echo -n "Uploading extensions... ("
+       for upload in $UPLOAD_EXT; do
+               echo -n "$upload "
+               TARGET="ext-$upload.*"
+               $FTP -u $FTP_USER -p $FTP_PASS $FTP_HOST $FTP_DIR $TARGET > /dev/null 2>&1
+       done
+       echo ") done"
+}
+
+function cms_ftp_upload()
+{
+       cd $CMS_UPLOAD_DIR
+       echo -n "Uploading CMS extensions... ("
+       for upload in $UPLOAD_CMS_EXT; do
+               echo -n "$upload "
+               TARGET="ext-$upload.*"
+               $FTP -u $FTP_USER -p $FTP_PASS $FTP_HOST $CMS_FTP_DIR $TARGET > /dev/null 2>&1
+       done
+       echo ") done"
+}
+
+function themes_ftp_upload()
+{
+       cd $THEMES_UPLOAD_DIR
+       echo -n "Uploading themes... ("
+       for upload in $UPLOAD_THEMES; do
+               echo -n "$upload "
+               TARGET="theme-$upload.*"
+               $FTP -u $FTP_USER -p $FTP_PASS $FTP_HOST $THEMES_FTP_DIR $TARGET > /dev/null 2>&1
+       done
+       echo ") done"
+}
+
+function hp_ftp_upload()
+{
+       cd $HP_UPLOAD_DIR
+       echo -n "Uploading HP extensions... ("
+       for upload in $UPLOAD_HP_EXT; do
+               echo -n "$upload "
+               TARGET="ext-$upload.*"
+               $FTP -u $FTP_USER -p $FTP_PASS $FTP_HOST $HP_FTP_DIR $TARGET > /dev/null 2>&1
+       done
+       echo ") done"
+}
+
+function init_file_system()
+{
+       echo -n "Creating missing dirs... "
+       mkdir $TARGET/ > /dev/null 2>&1
+       echo -n "."
+       mkdir $TARGET-$VER/ > /dev/null 2>&1
+       echo -n "."
+       mkdir $TARGET-$CMS/ > /dev/null 2>&1
+       echo -n "."
+       mkdir $TARGET-$CMS-$CMS_VER/ > /dev/null 2>&1
+       echo -n "."
+       mkdir $TARGET-$HP/ > /dev/null 2>&1
+       echo -n "."
+       mkdir $TARGET-$HP-$HP_VER/ > /dev/null 2>&1
+       echo -n "."
+       mkdir $THIS_DIR/org/cmds/ > /dev/null 2>&1
+       for sect in $CMDS_SECTIONS; do
+               echo -n "."
+               mkdir $THIS_DIR/org/cmds/$sect > /dev/null 2>&1
+               cp $THIS_DIR/.htaccess_cmds $THIS_DIR/org/cmds/$sect/.htaccess > /dev/null 2>&1
+       done
+       echo " done"
+
+       echo -n "Copying files... "
+       cp $CP_OPTIONS $CP_FILES $TARGET > /dev/null 2>&1
+       echo -n "."
+       cp $CP_OPTIONS $CMS_FILES $TARGET-$CMS > /dev/null 2>&1
+       echo -n "."
+       cp $CP_OPTIONS $HP_FILES $TARGET-$HP > /dev/null 2>&1
+       echo " done"
+       echo -n "Removing logs and usage links... "
+       rm -f $TARGET/$HTML/logs $TARGRT/$HTML/usage > /dev/null 2>&1
+       echo -n "."
+       rm -f $TARGET-$CMS/$CMS/logs $TARGRT-$CMS/$CMS/usage > /dev/null 2>&1
+       echo -n "."
+       rm -f $TARGET-$HP/$HP/logs $TARGRT-$HP/$HP/usage > /dev/null 2>&1
+       echo " done"
+       cd $BASEDIR
+       echo -n "Converting files... "
+       for target in $CONV_FILES; do
+               echo -n "."
+               find $TARGET/ -type f -name "$target" -exec unix2dos -p {} \; > /dev/null 2>&1
+               find $TARGET-$CMS/ -type f -name "$target" -exec unix2dos -p {} \; > /dev/null 2>&1
+               find $TARGET-$HP/ -type f -name "$target" -exec unix2dos -p {} \; > /dev/null 2>&1
+       done
+       echo " done"
+       echo -n "Moving files... "
+       mv $TARGET/$HTML/inc2/* $TARGET/$HTML/inc/ > /dev/null 2>&1
+       rmdir $TARGET/$HTML/inc2 > /dev/null 2>&1
+       echo -n "."
+       mv $TARGET-$CMS/$CMS/inc2/* $TARGET-$CMS/$CMS/inc/ > /dev/null 2>&1
+       rmdir $TARGET-$CMS/$CMS/inc2 > /dev/null 2>&1
+       echo -n "."
+       mv $TARGET-$HP/$HP/inc2/* $TARGET-$HP/$HP/inc/ > /dev/null 2>&1
+       rmdir $TARGET-$HP/$HP/inc2 > /dev/null 2>&1
+       echo " done"
+       cd $TARGET
+}
+
+function remove_files()
+{
+       cd $TARGET/..
+       echo -n "Removing files... "
+       rm -f $TAR_ARC* $CMS_TAR* $HP_TAR* > /dev/null 2>&1
+       echo -n "."
+       rm -f $ZIP_ARC* $CMS_ZIP* $HP_ZIP* > /dev/null 2>&1
+       cd $BASENAME
+       cp $CP_OPTIONS * ../$BASENAME-$VER > /dev/null 2>&1
+       echo -n "."
+       cd ../$BASENAME-$CMS
+       cp $CP_OPTIONS * ../$BASENAME-$CMS-$CMS_VER > /dev/null 2>&1
+       cd ../$BASENAME-$HP
+       cp $CP_OPTIONS * ../$BASENAME-$HP-$HP_VER > /dev/null 2>&1
+       cd ..
+       echo -n "."
+       find $BASENAME-$VER/ -name "CVS" -exec rm -rf {} \; > /dev/null 2>&1
+       echo -n "."
+       find $BASENAME-$CMS-$CMS_VER/ -name "CVS" -exec rm -rf {} \; > /dev/null 2>&1
+       echo -n "."
+       find $BASENAME-$HP-$HP_VER/ -name "CVS" -exec rm -rf {} \; > /dev/null 2>&1
+       echo -n "."
+       rm -rf $RM_FILES > /dev/null 2>&1
+       echo " done"
+}
+
+function ext_update()
+{
+       # Create version file when it doesn't exists
+       if test ! -e "$BASEDIR/$EXT_DIR/$EXT-$e.ver"; then
+               echo -n "0.0" > "$BASEDIR/$EXT_DIR/$EXT-$e.ver"
+       fi
+       # Create text file from template or set default text message
+       if test -e "$BASEDIR/$BASENAME/$HTML/templates/de/$HTML/ext/ext_$e.tpl"; then
+               echo "de:`cat $BASEDIR/$BASENAME/$HTML/templates/de/$HTML/ext/ext_$e.tpl`" > "$BASEDIR/$EXT_DIR/$EXT-$e.txt"
+        elif test ! -e "$BASEDIR/$EXT_DIR/$EXT-$e.txt"; then
+               echo "de:" > "$BASEDIR/$EXT_DIR/$EXT-$e.txt"
+       fi
+}
+
+function cms_ext_update()
+{
+       # Create version file when it doesn't exists
+       if test ! -e "$BASEDIR/$CMS_EXT_DIR/$EXT-$e.ver"; then
+               echo -n "0.0" > "$BASEDIR/$CMS_EXT_DIR/$EXT-$e.ver"
+       fi
+       # Create text file from template or set default text message
+       if test -e "$BASEDIR/$BASENAME/$HTML/templates/de/$HTML/ext/ext_$e.tpl"; then
+               echo "de:`cat $BASEDIR/$BASENAME/$HTML/templates/de/$HTML/ext/ext_$e.tpl`" > "$BASEDIR/$CMS_EXT_DIR/$EXT-$e.txt"
+        elif test ! -e "$BASEDIR/$CMS_EXT_DIR/$EXT-$e.txt"; then
+               echo "de:" > "$BASEDIR/$CMS_EXT_DIR/$EXT-$e.txt"
+       fi
+}
+
+function hp_ext_update()
+{
+       # Create version file when it doesn't exists
+       if test ! -e "$BASEDIR/$HP_EXT_DIR/$EXT-$e.ver"; then
+               echo -n "0.0" > "$BASEDIR/$HP_EXT_DIR/$EXT-$e.ver"
+       fi
+       # Create text file from template or set default text message
+       if test -e "$BASEDIR/$BASENAME/$HTML/templates/de/$HTML/ext/ext_$e.tpl"; then
+               echo "de:`cat $BASEDIR/$BASENAME/$HTML/templates/de/$HTML/ext/ext_$e.tpl`" > "$BASEDIR/$HP_EXT_DIR/$EXT-$e.txt"
+        elif test ! -e "$BASEDIR/$HP_EXT_DIR/$EXT-$e.txt"; then
+               echo "de:" > "$BASEDIR/$HP_EXT_DIR/$EXT-$e.txt"
+       fi
+}
+
+function cmds_update()
+{
+       # Create version file when it doesn't exists
+       if test ! -e "$BASEDIR/$CMDS_DIR/$c_dir/$CMDS-$c.ver"; then
+               echo -n "0.0" > "$BASEDIR/$CMDS_DIR/$c_dir/$CMDS-$c.ver"
+       fi
+       # Create text file from template or set default text message
+       if test -e "$THIS_DIR/html/templates/de/$HTML/engine/$CMDS/$c_dir/cmds_$c.tpl"; then
+               echo "de:`cat $THIS_DIR/html/templates/de/$HTML/engine/$CMDS/$c_dir/cmds_$c.tpl`" > "$BASEDIR/$CMDS_DIR/$c_dir/$CMDS-$c.txt"
+        elif test ! -e "$BASEDIR/$CMDS_DIR/$c_dir/$CMDS-$c.txt"; then
+               # Check if directory was found
+               if test ! -e "$THIS_DIR/$HTML/templates/de/$HTML/engine/$CMDS/$c_dir/.htaccess"; then
+                       # Create missing directory
+                       mkdir "$THIS_DIR/$HTML/templates/de/$HTML/engine/$CMDS/" > /dev/null 2>&1
+                       mkdir "$THIS_DIR/$HTML/templates/de/$HTML/engine/$CMDS/$c_dir/" > /dev/null 2>&1
+                       # Copy missing .htaccess file
+                       cp $THIS_DIR/$HTML/templates/.htaccess "$THIS_DIR/$HTML/templates/de/$HTML/engine/$CMDS/$c_dir/" > /dev/null 2>&1
+               fi
+               # Create missing file
+               echo -n "" > "$THIS_DIR/$HTML/templates/de/$HTML/engine/$CMDS/$c_dir/cmds_$c.tpl"
+               echo -n "" > "templates/de/$HTML/engine/$CMDS/$c_dir/cmds_$c.tpl"
+               # Update archive file with latest date
+               zip -9qp "$BASEDIR/$CMDS_DIR/$c_dir/$CMDS-$c.zip" "templates/de/$HTML/engine/$CMDS/$c_dir/cmds_$c.tpl" "$BASEDIR/$CMDS_DIR/$c_dir/$CMDS-$c" "templates/de/$HTML/engine/$CMDS/$c_dir/.htaccess" > /dev/null 2>&1
+               # Create missing file
+               echo "de:" > "$BASEDIR/$CMDS_DIR/$c_dir/$CMDS-$c.txt"
+       fi
+}
+
+function theme_update()
+{
+       # Create version file when it doesn't exists
+       if test ! -e "$BASEDIR/$THEME_DIR/$THEME-$t.ver"; then
+               echo -n "0.0" > "$BASEDIR/$THEME_DIR/$THEME-$t.ver"
+       fi
+       # Create text file from template or set default text message
+       if test -e "$BASEDIR/$BASENAME/$HTML/templates/de/$HTML/ext/ext_$t.tpl"; then
+               echo "de:`cat $BASEDIR/$BASENAME/$HTML/templates/de/$HTML/ext/ext_$t.tpl`" > "$BASEDIR/$THEME_DIR/$THEME-$t.txt"
+        elif test ! -e "$BASEDIR/$THEME_DIR/$THEME-$t.txt"; then
+               echo -n "" > "$BASEDIR/$BASENAME/$HTML/templates/de/$HTML/ext/ext_$t.tpl"
+               echo "de:" > "$BASEDIR/$THEME_DIR/$THEME-$t.txt"
+       fi
+}
+
+function zip_packages()
+{
+       if test ! $TAR_MAX == ""; then
+               cd $BASEDIR
+               echo -n "Creating archive $TAR_MAX... "
+               tar -cf $TAR_MAX $BASENAME-$VER/ > /dev/null 2>&1
+               $BZIP2 -9f $TAR_MAX > /dev/null 2>&1
+               echo "done"
+               echo -n "Creating archive $ZIP_MAX... "
+               $ZIP -9r  $ZIP_MAX $BASENAME-$VER/ > /dev/null 2>&1
+               echo "done"
+               cd $BASEDIR/$BASENAME-$VER/$HTML/
+               echo -n "Creating $MAX extension archives... ("
+               for e in $MAX_EXT; do
+                       rm -f "$BASEDIR/$EXT_DIR/$EXT-$e.zip"
+                       ###########
+                       find -name "*$e*" -exec $ZIP -9qrm "$BASEDIR/$EXT_DIR/$EXT-$e" {} \; > /dev/null 2>&1
+                       $ZIP -9q "$BASEDIR/$EXT_DIR/$EXT-$e.zip" $EXT_FILES > /dev/null 2>&1
+                       ###########
+                       ext_update
+                       echo -n "$e "
+               done
+               echo ") done"
+       fi
+       if test ! $TAR_MEDIUM == ""; then
+               cd $BASEDIR
+               echo -n "Creating archive $TAR_MEDIUM... "
+               tar -cf $TAR_MEDIUM $BASENAME-$VER/ > /dev/null 2>&1
+               $BZIP2 -9f $TAR_MEDIUM > /dev/null 2>&1
+               echo "done"
+               echo -n "Creating archive $ZIP_MEDIUM... "
+               $ZIP -9r  $ZIP_MEDIUM $BASENAME-$VER/ > /dev/null 2>&1
+               echo "done"
+               cd $BASEDIR/$BASENAME-$VER/$HTML/
+               echo -n "Creating $MEDIUM extension archives... ("
+               for e in $MEDIUM_EXT; do
+                       rm -f "$BASEDIR/$EXT_DIR/$EXT-$e.zip"
+                       ###########
+                       find -name "*$e*" -exec $ZIP -9qrm "$BASEDIR/$EXT_DIR/$EXT-$e" {} \; > /dev/null 2>&1
+                       $ZIP -9q "$BASEDIR/$EXT_DIR/$EXT-$e.zip" $EXT_FILES > /dev/null 2>&1
+                       ###########
+                       ext_update
+                       echo -n "$e "
+               done
+               echo ") done"
+       fi
+       if test ! $TAR_SMALL == ""; then
+               cd $BASEDIR
+               echo -n "Creating archive $TAR_SMALL... "
+               tar -cf $TAR_SMALL $BASENAME-$VER/ > /dev/null 2>&1
+               $BZIP2 -9f $TAR_SMALL > /dev/null 2>&1
+               echo "done"
+               echo -n "Creating archive $ZIP_SMALL... "
+               $ZIP -9r  $ZIP_SMALL $BASENAME-$VER/ > /dev/null 2>&1
+               echo "done"
+               cd $BASEDIR/$BASENAME-$VER/$HTML/
+               echo -n "Creating $SMALL extension archives... ("
+               for e in $SMALL_EXT; do
+                       rm -f "$BASEDIR/$EXT_DIR/$EXT-$e.zip"
+                       ###########
+                       find -name "*$e*" -exec $ZIP -9qrm "$BASEDIR/$EXT_DIR/$EXT-$e" {} \; > /dev/null 2>&1
+                       $ZIP -9q "$BASEDIR/$EXT_DIR/$EXT-$e.zip" $EXT_FILES > /dev/null 2>&1
+                       ###########
+                       ext_update
+                       echo -n "$e "
+               done
+               echo ") done"
+       fi
+}
+
+function zip_cmds()
+{
+       cd $BASEDIR/$BASENAME-$VER/$HTML/
+       c_dir="status"
+       echo -n "Creating $c_dir command archives... ("
+       for c in $STATUS_CMDS; do
+               rm -f "$BASEDIR/$CMDS_DIR/$CMDS-$c.zip"
+               ###########
+               $ZIP -9q "$BASEDIR/$CMDS_DIR/$c_dir/$CMDS-$c.zip" "inc/engine/$c_dir/cmd-$c.php" $CMDS_FILES > /dev/null 2>&1
+               ###########
+               cmds_update
+               echo -n "$c "
+       done
+       echo ") done"
+
+       c_dir="export"
+       echo -n "Creating $c_dir command archives... ("
+       for c in $EXPORT_CMDS; do
+               rm -f "$BASEDIR/$CMDS_DIR/$CMDS-$c.zip"
+               ###########
+               $ZIP -9q "$BASEDIR/$CMDS_DIR/$c_dir/$CMDS-$c.zip" "inc/engine/$c_dir/cmd-$c.php" $CMDS_FILES > /dev/null 2>&1
+               ###########
+               cmds_update
+               echo -n "$c "
+       done
+       echo ") done"
+
+       c_dir="rmember"
+       echo -n "Creating $c_dir command archives... ("
+       for c in $RMEMBER_CMDS; do
+               rm -f "$BASEDIR/$CMDS_DIR/$CMDS-$c.zip"
+               ###########
+               $ZIP -9q "$BASEDIR/$CMDS_DIR/$c_dir/$CMDS-$c.zip" "inc/engine/$c_dir/cmd-$c.php" $CMDS_FILES > /dev/null 2>&1
+               ###########
+               cmds_update
+               echo -n "$c "
+       done
+       echo ") done"
+}
+
+function zip_debug_ext()
+{
+       cd $BASEDIR/$BASENAME-$VER/$HTML/
+       echo -n "Creating debug extension archives... ("
+       for e in $DEBUG_EXT; do
+               rm -f "$BASEDIR/$EXT_DIR/$EXT-$e.zip"
+               ###########
+               find -name "*$e*" -exec $ZIP -9qmr "$BASEDIR/$EXT_DIR/$EXT-$e" {} \; > /dev/null 2>&1
+               $ZIP -9q "$BASEDIR/$EXT_DIR/$EXT-$e.zip" $EXT_FILES > /dev/null 2>&1
+               ###########
+               ext_update
+               echo -n "$e "
+       done
+       echo ") done"
+}
+
+function zip_extensions()
+{
+       cd $BASEDIR/$BASENAME-$VER/$HTML/
+       echo -n "Creating base extension archives... ("
+       for e in $BASE_EXT; do
+               rm -f "$BASEDIR/$EXT_DIR/$EXT-$e.zip"
+               EXC=""
+               if test "$e" = "theme"; then
+                       EXC="-path ./theme -prune -o -print"
+               fi
+               ###########
+               find $EXC -name "*$e*" -exec $ZIP -9qr "$BASEDIR/$EXT_DIR/$EXT-$e" {} \; > /dev/null 2>&1
+               $ZIP -9q "$BASEDIR/$EXT_DIR/$EXT-$e.zip" $EXT_FILES > /dev/null 2>&1
+               ###########
+               ext_update
+               echo -n "$e "
+       done
+       echo ") done"
+}
+
+function zip_cms_extensions()
+{
+       cd $BASEDIR/$BASENAME-$CMS-$CMS_VER/$CMS/
+       echo -n "Creating $CMS extension archives... ("
+       for e in $CMS_EXT; do
+               rm -f "$BASEDIR/$CMS_EXT_DIR/$EXT-$e.zip"
+               EXC=""
+               if test "$e" = "theme"; then
+                       EXC="-path ./theme -prune -o -print"
+               fi
+               ###########
+               find $EXC -name "*$e*" -exec $ZIP -9qr "$BASEDIR/$CMS_EXT_DIR/$EXT-$e" {} \; > /dev/null 2>&1
+               $ZIP -9q "$BASEDIR/$CMS_EXT_DIR/$EXT-$e.zip" $EXT_FILES > /dev/null 2>&1
+               ###########
+               cms_ext_update
+               echo -n "$e "
+       done
+       for e in $CMS_EXTRA_EXT; do
+               rm -f "$BASEDIR/$CMS_EXT_DIR/$EXT-$e.zip"
+               ###########
+               find -name "*$e*" -exec $ZIP -9qrm "$BASEDIR/$CMS_EXT_DIR/$EXT-$e" {} \; > /dev/null 2>&1
+               $ZIP -9q "$BASEDIR/$CMS_EXT_DIR/$EXT-$e.zip" $EXT_FILES > /dev/null 2>&1
+               ###########
+               cms_ext_update
+               echo -n "$e "
+       done
+       echo ") done"
+}
+
+function zip_hp_extensions()
+{
+       cd $BASEDIR/$BASENAME-$HP-$HP_VER/$HP/
+       echo -n "Creating $HP extension archives... ("
+       for e in $HP_EXT; do
+               rm -f "$BASEDIR/$HP_EXT_DIR/$EXT-$e.zip"
+               EXC=""
+               if test "$e" = "theme"; then
+                       EXC="-path ./theme -prune -o -print"
+               fi
+               ###########
+               find $EXC -name "*$e*" -exec $ZIP -9qr "$BASEDIR/$HP_EXT_DIR/$EXT-$e" {} \; > /dev/null 2>&1
+               $ZIP -9q "$BASEDIR/$HP_EXT_DIR/$EXT-$e.zip" $EXT_FILES > /dev/null 2>&1
+               ###########
+               hp_ext_update
+               echo -n "$e "
+       done
+       for e in $HP_EXTRA_EXT; do
+               rm -f "$BASEDIR/$HP_EXT_DIR/$EXT-$e.zip"
+               ###########
+               find -name "*$e*" -exec $ZIP -9qrm "$BASEDIR/$HP_EXT_DIR/$EXT-$e" {} \; > /dev/null 2>&1
+               $ZIP -9q "$BASEDIR/$HP_EXT_DIR/$EXT-$e.zip" $EXT_FILES > /dev/null 2>&1
+               ###########
+               hp_ext_update
+               echo -n "$e "
+       done
+       echo ") done"
+}
+
+function zip_base_themes()
+{
+       cd $BASEDIR/$BASENAME-$VER/$HTML/
+       echo -n "Creating base theme archives... ("
+       for t in $BASE_THEMES; do
+               rm -f "$BASEDIR/$THEME_DIR/$THEME-$t.zip"
+               ###########
+               find theme/ -name "*$t*" -exec $ZIP -9qr "$BASEDIR/$THEME_DIR/$THEME-$t" {} \; > /dev/null 2>&1
+               $ZIP -9q "$BASEDIR/$THEME_DIR/$THEME-$t.zip" $THEME_FILES > /dev/null 2>&1
+               ###########
+               theme_update
+               echo -n "$t "
+       done
+       echo ") done"
+}
+
+function zip_themes()
+{
+       cd $BASEDIR/$BASENAME-$VER/$HTML/
+       echo -n "Creating theme archives... ("
+       for t in $THEMES; do
+               rm -f "$BASEDIR/$THEME_DIR/$THEME-$t.zip"
+               ###########
+               find theme/ -name "*$t*" -exec $ZIP -9qmr "$BASEDIR/$THEME_DIR/$THEME-$t" {} \; > /dev/null 2>&1
+               $ZIP -9q "$BASEDIR/$THEME_DIR/$THEME-$t.zip" $THEME_FILES > /dev/null 2>&1
+               ###########
+               theme_update
+               echo -n "$t "
+       done
+       echo ") done"
+}
+
+function zip_base_archives()
+{
+       cd $BASEDIR
+       # Tar ball
+       echo -n "Creating archive $TAR_ARC ... "
+       tar -cf $TAR_ARC $BASENAME-$VER/ > /dev/null 2>&1
+       $BZIP2 -9f $TAR_ARC > /dev/null 2>&1
+       echo "done"
+       echo -n "Creating archive $CMS_TAR ... "
+       tar -cf $CMS_TAR $BASENAME-$CMS-$CMS_VER/ > /dev/null 2>&1
+       $BZIP2 -9f $CMS_TAR > /dev/null 2>&1
+       echo "done"
+       echo -n "Creating archive $HP_TAR ... "
+       tar -cf $HP_TAR $BASENAME-$HP-$HP_VER/ > /dev/null 2>&1
+       $BZIP2 -9f $HP_TAR > /dev/null 2>&1
+       echo "done"
+
+       # ZIP file
+       echo -n "Creating archive $ZIP_ARC ... "
+       $ZIP -9r $ZIP_ARC $BASENAME-$VER/* > /dev/null 2>&1
+       echo "done"
+       echo -n "Creating archive $CMS_ZIP ... "
+       $ZIP -9r $CMS_ZIP $BASENAME-$CMS-$CMS_VER/* > /dev/null 2>&1
+       echo "done"
+       echo -n "Creating archive $HP_ZIP ... "
+       $ZIP -9r $HP_ZIP $BASENAME-$HP-$HP_VER/* > /dev/null 2>&1
+       echo "done"
+}
+
+function cvs_update()
+{
+       cd $BASEDIR/$BASENAME
+       echo -n "Preparing upload... "
+       rm -rf $RM_FILES_CVS > /dev/null 2>&1
+       echo "done"
+       echo
+       cvs login || exit 255
+       echo
+       echo "Importing $BASENAME..."
+       cvs -z3 import -m "$LOG_MSG" -I \*.zip -I \*.bz2 "$BASENAME" "$BASENAME" start || exit 255
+       cd $BASEDIR/$BASENAME-$CMS
+       echo
+       echo "Importing $BASENAME-$CMS..."
+       cvs -z3 import -m "$LOG_MSG" -I \*.zip -I \*.bz2 "$BASENAME-$CMS" "$BASENAME-$CMS" start || exit 255
+       cd $BASEDIR/$BASENAME-$HP
+       echo
+       echo "Importing $BASENAME-$HP..."
+       cvs -z3 import -m "$LOG_MSG" -I \*.zip -I \*.bz2 "$BASENAME-$HP" "$BASENAME-$HP" start || exit 255
+       cd $BASEDIR
+       echo
+       echo -n "Logging CVS changes..."
+       cvs -z3 log $BASENAME > $CVS_LOG || exit 255
+       echo "done"
+       echo
+       cvs logout
+       echo
+       echo -n "Generating statistics... "
+       $JAVA -jar $STATS_CVS >/dev/null 2>&1
+       echo "done"
+       cd $STATS_OUT
+       echo -n "Uploading statistics... "
+       $FTP -u $FTP_USER -p $FTP_PASS $FTP_HOST $STATS_FTP_DIR *.* > /dev/null 2>&1
+       echo " done"
+       cd $BASEDIR
+}
+
+function stats_upload()
+{
+       echo -n "Uploading statistics... "
+       $FTP -u $FTP_USER -p $FTP_PASS $FTP_HOST $STATS_FTP_DIR *.* > /dev/null 2>&1
+       echo " done"
+}
+
+function cvs_download()
+{
+       cd $BASEDIR
+       echo -n "Preparing download... "
+       rm -rf $RM_FILES_CVS $BASENAME/* $BASENAME-$CMS/* $BASENAME-$HP/* > /dev/null 2>&1
+       echo "done"
+       echo
+       cvs login
+       echo "Connecting to CVS server..."
+       cvs -z3 checkout "$BASENAME" || exit 255
+       echo
+       echo "Connecting to CVS server..."
+       cvs -z3 checkout "$BASENAME-$CMS" "$BASENAME-$CMS" || exit 255
+       echo
+       echo "Connecting to CVS server..."
+       cvs -z3 checkout "$BASENAME-$HP" "$BASENAME-$HP" || exit 255
+       echo
+       cvs logout
+}