added only_increment param to all action=browse links
[BackupPC.git] / lib / BackupPC / Config / Meta.pm
index 7995169..009c6ed 100644 (file)
@@ -10,7 +10,7 @@
 #   Craig Barratt  <cbarratt@users.sourceforge.net>
 #
 # COPYRIGHT
-#   Copyright (C) 2004  Craig Barratt
+#   Copyright (C) 2004-2009  Craig Barratt
 #
 #   This program is free software; you can redistribute it and/or modify
 #   it under the terms of the GNU General Public License as published by
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 2.1.0, released 20 Jun 2004.
+# Version 3.2.0, released 31 Jul 2010.
 #
 # See http://backuppc.sourceforge.net.
 #
@@ -80,17 +80,18 @@ use vars qw(%ConfigMeta);
     MaxBackupPCNightlyJobs => "integer",
     BackupPCNightlyPeriod  => "integer",
     MaxOldLogFiles      => "integer",
+    CmdQueueNice        => "integer",
 
-    SshPath            => {type => "string", undefIfEmpty => 1},
-    NmbLookupPath      => {type => "string", undefIfEmpty => 1},
-    PingPath           => {type => "string", undefIfEmpty => 1},
-    DfPath             => {type => "string", undefIfEmpty => 1},
+    SshPath            => {type => "execPath", undefIfEmpty => 1},
+    NmbLookupPath      => {type => "execPath", undefIfEmpty => 1},
+    PingPath           => {type => "execPath", undefIfEmpty => 1},
+    DfPath             => {type => "execPath", undefIfEmpty => 1},
     DfCmd              => "string",
-    SplitPath          => {type => "string", undefIfEmpty => 1},
-    ParPath            => {type => "string", undefIfEmpty => 1},
-    CatPath            => {type => "string", undefIfEmpty => 1},
-    GzipPath           => {type => "string", undefIfEmpty => 1},
-    Bzip2Path          => {type => "string", undefIfEmpty => 1},
+    SplitPath          => {type => "execPath", undefIfEmpty => 1},
+    ParPath            => {type => "execPath", undefIfEmpty => 1},
+    CatPath            => {type => "execPath", undefIfEmpty => 1},
+    GzipPath           => {type => "execPath", undefIfEmpty => 1},
+    Bzip2Path          => {type => "execPath", undefIfEmpty => 1},
     DfMaxUsagePct      => "float",
     TrashCleanSleepSec => "integer",
     DHCPAddressRanges   => {
@@ -99,6 +100,7 @@ use vars qw(%ConfigMeta);
             child   => {
                 type      => "hash",
                 noKeyEdit => 1,
+                order     => [qw(ipAddrBase first last)],
                 child     => {
                     ipAddrBase => "string",
                     first      => "integer",
@@ -109,7 +111,10 @@ use vars qw(%ConfigMeta);
     BackupPCUser       => "string",
     CgiDir             => "string",
     InstallDir         => "string",
-    BackupPCUserVerify  => "integer",
+    TopDir              => "string",
+    ConfDir             => "string",
+    LogDir              => "string",
+    BackupPCUserVerify  => "boolean",
     HardLinkMax                => "integer",
     PerlModuleLoad     => {
            type    => "list",
@@ -135,22 +140,33 @@ use vars qw(%ConfigMeta);
     IncrKeepCnt                => "integer",
     IncrKeepCntMin     => "integer",
     IncrAgeMax         => "float",
+    IncrLevels          => {
+           type   => "shortlist",
+           child  => "integer",
+    },
     PartialAgeMax      => "float",
-    IncrFill           => "integer",
+    BackupsDisable      => "integer",
+    IncrFill           => "boolean",
     RestoreInfoKeepCnt => "integer",
     ArchiveInfoKeepCnt => "integer",
 
     BackupFilesOnly    => {
-           type         => "list",
-           emptyOk      => 1,
-           undefIfEmpty => 1,
-           child        => "string",
+            type      => "hash",
+            emptyOk   => 1,
+            childType => {
+                type      => "list",
+                emptyOk   => 1,
+                child     => "string",
+            },
     },
     BackupFilesExclude => {
-           type         => "list",
-           emptyOk      => 1,
-           undefIfEmpty => 1,
-           child        => "string",
+            type      => "hash",
+            emptyOk   => 1,
+            childType => {
+                type      => "list",
+                emptyOk   => 1,
+                child     => "string",
+            },
     },
 
     BlackoutBadPingLimit => "integer",
@@ -172,28 +188,37 @@ use vars qw(%ConfigMeta);
             },
         },
 
-    BackupZeroFilesIsFatal => "integer",
+    BackupZeroFilesIsFatal => "boolean",
 
     ######################################################################
     # How to backup a client
     ######################################################################
     XferMethod => {
            type   => "select",
-           values => [qw(archive rsync rsyncd smb tar)],
+           values => [qw(archive ftp rsync rsyncd smb tar)],
     },
     XferLogLevel       => "integer",
 
+    ClientCharset       => "string",
+    ClientCharsetLegacy => "string",
+
+    ######################################################################
+    # Smb Configuration
+    ######################################################################
     SmbShareName       => {
            type   => "list",
            child  => "string",
     },
     SmbShareUserName   => "string",
     SmbSharePasswd     => "string",
-    SmbClientPath      => {type => "string", undefIfEmpty => 1},
+    SmbClientPath      => {type => "execPath", undefIfEmpty => 1},
     SmbClientFullCmd   => "string",
     SmbClientIncrCmd   => "string",
-    SmbClientRestoreCmd => "string",
+    SmbClientRestoreCmd => {type => "string", undefIfEmpty => 1},
 
+    ######################################################################
+    # Tar Configuration
+    ######################################################################
     TarShareName       => {
            type   => "list",
            child  => "string",
@@ -201,9 +226,12 @@ use vars qw(%ConfigMeta);
     TarClientCmd       => "string",
     TarFullArgs        => "string",
     TarIncrArgs                => "string",
-    TarClientRestoreCmd        => "string",
+    TarClientRestoreCmd        => {type => "string", undefIfEmpty => 1},
     TarClientPath      => {type => "string", undefIfEmpty => 1},
 
+    ######################################################################
+    # Rsync Configuration
+    ######################################################################
     RsyncShareName     => {
            type   => "list",
            child  => "string",
@@ -212,35 +240,69 @@ use vars qw(%ConfigMeta);
     RsyncClientCmd     => "string",
     RsyncClientRestoreCmd => "string",
 
+    ######################################################################
+    # Rsyncd Configuration
+    ######################################################################
     RsyncdClientPort   => "integer",
+    RsyncdUserName     => "string",
     RsyncdPasswd       => "string",
-    RsyncdAuthRequired => "integer",
+    RsyncdAuthRequired => "boolean",
 
+    ######################################################################
+    # Rsync(d) Options
+    ######################################################################
     RsyncCsumCacheVerifyProb => "float",
     RsyncArgs          => {
-           type   => "list",
-           emptyOk => 1,
-           child  => "string",
+           type         => "list",
+           emptyOk      => 1,
+           child        => "string",
+    },
+    RsyncArgsExtra      => {
+           type         => "list",
+           emptyOk      => 1,
+           child        => "string",
     },
     RsyncRestoreArgs   => {
-           type   => "list",
-           emptyOk => 1,
-           child  => "string",
+           type         => "list",
+           emptyOk      => 1,
+            undefIfEmpty => 1,
+           child        => "string",
+    },
+
+    ######################################################################
+    # FTP Configuration
+    ######################################################################
+    FtpShareName        => {
+            type  => "list",
+            child => "string",
     },
+    FtpUserName         => "string",
+    FtpPasswd           => "string",
+    FtpPassive          => "boolean",
+    FtpBlockSize        => "integer",
+    FtpPort             => "integer",
+    FtpTimeout          => "integer",
+    FtpFollowSymlinks   => "boolean",
 
+    ######################################################################
+    # Archive Configuration
+    ######################################################################
     ArchiveDest        => "string",
     ArchiveComp                => {
            type   => "select",
            values => [qw(none bzip2 gzip)],
     },
-    ArchivePar         => "integer",
+    ArchivePar         => "boolean",
     ArchiveSplit       => "float",
     ArchiveClientCmd   => "string",
 
+    ######################################################################
+    # Other Client Configuration
+    ######################################################################
     NmbLookupCmd       => "string",
     NmbLookupFindHostCmd => "string",
 
-    FixedIPNetBiosNameCheck => "integer",
+    FixedIPNetBiosNameCheck => "boolean",
     PingCmd            => "string",
     PingMaxMsec                => "float",
 
@@ -258,6 +320,7 @@ use vars qw(%ConfigMeta);
     RestorePostUserCmd => {type => "string", undefIfEmpty => 1},
     ArchivePreUserCmd  => {type => "string", undefIfEmpty => 1},
     ArchivePostUserCmd => {type => "string", undefIfEmpty => 1},
+    UserCmdCheckStatus  => "boolean",
 
     ClientNameAlias    => {type => "string", undefIfEmpty => 1},
 
@@ -265,7 +328,7 @@ use vars qw(%ConfigMeta);
     # Email reminders, status and messages
     # (can be overridden in the per-PC config.pl)
     ######################################################################
-    SendmailPath             => {type => "string", undefIfEmpty => 1},
+    SendmailPath             => {type => "execPath", undefIfEmpty => 1},
     EMailNotifyMinDays        => "float",
     EMailFromUserName         => "string",
     EMailAdminUserName        => "string",
@@ -278,6 +341,7 @@ use vars qw(%ConfigMeta);
     EMailNotifyOldOutlookDays => "float",
     EMailOutlookBackupSubj    => {type => "string",    undefIfEmpty => 1},
     EMailOutlookBackupMesg    => {type => "bigstring", undefIfEmpty => 1},
+    EMailHeaders              => {type => "bigstring", undefIfEmpty => 1},
 
     ######################################################################
     # CGI user interface configuration settings
@@ -285,12 +349,15 @@ use vars qw(%ConfigMeta);
     CgiAdminUserGroup  => "string",
     CgiAdminUsers      => "string",
     CgiURL             => "string",
-    Language           => "string",
+    Language           => {
+           type   => "select",
+           values => [qw(cz de en es fr it nl pl pt_br zh_CN)],
+    },
     CgiUserHomePageCheck => "string",
     CgiUserUrlCreate    => "string",
     CgiDateFormatMMDD  => "integer",
-    CgiNavBarAdminAllHosts => "integer",
-    CgiSearchBoxEnable         => "integer",
+    CgiNavBarAdminAllHosts => "boolean",
+    CgiSearchBoxEnable         => "boolean",
     CgiNavBarLinks     => {
            type    => "list",
            emptyOk => 1,
@@ -313,6 +380,8 @@ use vars qw(%ConfigMeta);
                Reason_no_ping                 => "string",
                Reason_backup_canceled_by_user => "string",
                Status_backup_in_progress      => "string",
+                Disabled_OnlyManualBackups     => "string", 
+                Disabled_AllBackupsDisabled    => "string",  
            },
     },
     CgiHeaders         => "bigstring",
@@ -324,6 +393,7 @@ use vars qw(%ConfigMeta);
         },
     CgiImageDirURL     => "string",
     CgiCSSFile         => "string",
+    CgiUserConfigEditEnable => "boolean",
     CgiUserConfigEdit   => {
            type => "hash",
            noKeyEdit => 1,
@@ -336,41 +406,77 @@ use vars qw(%ConfigMeta);
                 IncrKeepCnt               => "boolean",
                 IncrKeepCntMin            => "boolean",
                 IncrAgeMax                => "boolean",
+                IncrLevels                => "boolean",
                 PartialAgeMax             => "boolean",
                 IncrFill                  => "boolean",
                 RestoreInfoKeepCnt        => "boolean",
                 ArchiveInfoKeepCnt        => "boolean",
                 BackupFilesOnly           => "boolean",
                 BackupFilesExclude        => "boolean",
+                BackupsDisable            => "boolean",
                 BlackoutBadPingLimit      => "boolean",
                 BlackoutGoodCnt           => "boolean",
                 BlackoutPeriods           => "boolean",
                 BackupZeroFilesIsFatal    => "boolean",
                 XferMethod                => "boolean",
                 XferLogLevel              => "boolean",
+                ClientCharset             => "boolean",
+                ClientCharsetLegacy       => "boolean",
                 SmbShareName              => "boolean",
                 SmbShareUserName          => "boolean",
                 SmbSharePasswd            => "boolean",
+                SmbClientFullCmd          => "boolean",
+                SmbClientIncrCmd          => "boolean",
+                SmbClientRestoreCmd       => "boolean",
                 TarShareName              => "boolean",
                 TarFullArgs               => "boolean",
                 TarIncrArgs               => "boolean",
+                TarClientCmd              => "boolean",
+                TarClientPath             => "boolean",
+                TarClientRestoreCmd       => "boolean",
                 RsyncShareName            => "boolean",
                 RsyncdClientPort          => "boolean",
+                RsyncdUserName            => "boolean",
                 RsyncdPasswd              => "boolean",
                 RsyncdAuthRequired        => "boolean",
                 RsyncCsumCacheVerifyProb  => "boolean",
                 RsyncArgs                 => "boolean",
+                RsyncArgsExtra            => "boolean",
                 RsyncRestoreArgs          => "boolean",
+                RsyncClientCmd            => "boolean",
+                RsyncClientPath           => "boolean",
+                RsyncClientRestoreCmd     => "boolean",
+                FtpShareName              => "boolean",
+                FtpUserName               => "boolean",
+                FtpPasswd                 => "boolean",
+                FtpBlockSize              => "boolean",
+                FtpPort                   => "boolean",
+                FtpTimeout                => "boolean",
+                FtpFollowSymlinks         => "boolean",
+                FtpRestoreEnabled         => "boolean",
                 ArchiveDest               => "boolean",
                 ArchiveComp               => "boolean",
                 ArchivePar                => "boolean",
                 ArchiveSplit              => "boolean",
+                ArchiveClientCmd          => "boolean",
                 FixedIPNetBiosNameCheck   => "boolean",
                 PingMaxMsec               => "boolean",
+                NmbLookupCmd              => "boolean",
+                NmbLookupFindHostCmd      => "boolean",
+                PingCmd                   => "boolean",
                 ClientTimeout             => "boolean",
                 MaxOldPerPCLogFiles       => "boolean",
                 CompressLevel             => "boolean",
                 ClientNameAlias           => "boolean",
+                DumpPreUserCmd            => "boolean",
+                DumpPostUserCmd           => "boolean",
+                RestorePreUserCmd         => "boolean",
+                RestorePostUserCmd        => "boolean",
+                ArchivePreUserCmd         => "boolean",
+                ArchivePostUserCmd        => "boolean",
+                DumpPostShareCmd          => "boolean",
+                DumpPreShareCmd           => "boolean",
+                UserCmdCheckStatus        => "boolean",
                 EMailNotifyMinDays        => "boolean",
                 EMailFromUserName         => "boolean",
                 EMailAdminUserName        => "boolean",
@@ -383,6 +489,26 @@ use vars qw(%ConfigMeta);
                 EMailNotifyOldOutlookDays => "boolean",
                 EMailOutlookBackupSubj    => "boolean",
                 EMailOutlookBackupMesg    => "boolean",
+                EMailHeaders              => "boolean",
+           },
+    },
+
+    ######################################################################
+    # Fake config setting for editing the hosts
+    ######################################################################
+    Hosts => {
+           type    => "list",
+           emptyOk => 1,
+           child   => {
+               type  => "horizHash",
+                order => [qw(host dhcp user moreUsers)],
+                noKeyEdit => 1,
+               child => {
+                   host       => { type => "string", size => 20 },
+                   dhcp       => { type => "boolean"            },
+                   user       => { type => "string", size => 20 },
+                   moreUsers  => { type => "string", size => 30 },
+               },
            },
     },
 );