Initial commit

This commit is contained in:
Tobias Herre 2023-10-17 09:30:00 +02:00
parent 2215b75985
commit 00f87e7e2e
1 changed files with 98 additions and 0 deletions

98
roundcube.cf Normal file
View File

@ -0,0 +1,98 @@
#
#
#
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";
}