# # # bundle agent roundcube(cfg) { classes: "roundcube_untar" expression => not(fileexists("$(cfg[install_sub_dir])/index.php")); "config_exists" expression => fileexists("$(cfg[install_sub_dir])/config/config.inc.php"); "backup_config_exists" expression => fileexists("$(cfg[backup_dir])/config.inc.php"); "run_backups" expression => isvariable("cfg[backup_dir]"); run_backups:: "backup_config_exists" expression => fileexists("$(cfg[backup_dir])/config.inc.php"); "sql_backup_exists" expression => fileexists("$(cfg[backup_dir])/roundcube.sql"); run_backups:: vars: "dlfile" string => "$(sys.workdir)/data/public/$(cfg[src_tgz])"; files: "$(dlfile)" copy_from => remote_dcp("$(def.hub_public_dir)/$(cfg[src_tgz])","$(sys.policy_hub)"), handle => "roundcube_tgz_copied", classes => if_repaired ("roundcube_untar"), perms => m(644); "$(cfg[install_dir])/public" link_from => ln_s("$(cfg[install_sub_dir])"), move_obstructions => "true", depends_on => {"roundcube_untarred"}; run_backups&(!config_exists)&backup_config_exists:: "$(cfg[install_sub_dir])/config/config.inc.php" copy_from => local_cp("$(cfg[backup_dir])/config.inc.php"), perms => m("644"), classes => if_repaired("roundcube_config_repaired"), depends_on => {"roundcube_untarred"}; run_backups&config_exists:: "$(cfg[backup_dir])/config.inc.php" copy_from => local_dcp("$(cfg[install_sub_dir])/config/config.inc.php"), depends_on => {"roundcube_untarred"}; methods: "any" usebundle => mysql_table_exists(@(cfg),"users"); config_exists|roundcube_configr_repaired:: "any" usebundle => rm_rf ("$(cfg[install_sub_dir])/installer"); commands: roundcube_untar:: "/usr/bin/tar" args => "xzvf $(dlfile) -C $(cfg[install_dir])", depends_on => {"roundcube_tgz_copied"}, handle => "roundcube_untarred"; !roundcube_untar:: "/usr/bin/true" inform => "false", depends_on => {"roundcube_tgz_copied"}, handle => "roundcube_untarred"; "run_backups&sql_backup_exists&(!mysql_$(cfg[db_name])_users_exists)":: "$(mysql.mysql_cmd)" args => "-h$(cfg[db_host]) -u$(cfg[db_user]) -p$(cfg[db_pass]) $(cfg[db_name]) < $(cfg[backup_dir])/roundcube.sql", contain => wmde_cmd_useshell; methods: run_backups:: # "any" usebundle => mysql_backup_db(@(cfg),"$(cfg[backup_dir])/roundcube.sql"); "any" usebundle => create_mysql_backup_cron_job(@(cfg),"$(cfg[backup_dir])/roundcube.sql","users","true"); !run_backups:: "any" usebundle => create_mysql_backup_cron_job(@(cfg),"$(cfg[backup_dir])/roundcube.sql","users","false"); reports: # "mysql_$(cfg[db_name])_users_exists":: # "DB EXISTS! ROUNDCUBE"; # "sql_backup_exists":: # "SQL_BACKUP_EXISTS FILE $(cfg[backup_dir])/roundcube.sql" # ; # run_backups&(!config_exists)&backup_config_exists:: # "ROUNDCUBE CAN RESTORE config"; # "run_backups":: # "ROUNDCUBE SHOULD RUN BACKUPS"; }