* Added multi-level incrementals. Still needs testing.
[BackupPC.git] / lib / BackupPC / Config / Meta.pm
index 7995169..cdd666d 100644 (file)
@@ -28,7 +28,7 @@
 #
 #========================================================================
 #
-# Version 2.1.0, released 20 Jun 2004.
+# Version 3.0.0alpha, released 23 Jan 2006.
 #
 # See http://backuppc.sourceforge.net.
 #
@@ -81,16 +81,16 @@ use vars qw(%ConfigMeta);
     BackupPCNightlyPeriod  => "integer",
     MaxOldLogFiles      => "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 +99,7 @@ use vars qw(%ConfigMeta);
             child   => {
                 type      => "hash",
                 noKeyEdit => 1,
+                order     => [qw(ipAddrBase first last)],
                 child     => {
                     ipAddrBase => "string",
                     first      => "integer",
@@ -109,7 +110,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 +139,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,7 +187,7 @@ use vars qw(%ConfigMeta);
             },
         },
 
-    BackupZeroFilesIsFatal => "integer",
+    BackupZeroFilesIsFatal => "boolean",
 
     ######################################################################
     # How to backup a client
@@ -183,6 +198,8 @@ use vars qw(%ConfigMeta);
     },
     XferLogLevel       => "integer",
 
+    ClientCharset       => "string",
+
     SmbShareName       => {
            type   => "list",
            child  => "string",
@@ -213,8 +230,9 @@ use vars qw(%ConfigMeta);
     RsyncClientRestoreCmd => "string",
 
     RsyncdClientPort   => "integer",
+    RsyncdUserName     => "string",
     RsyncdPasswd       => "string",
-    RsyncdAuthRequired => "integer",
+    RsyncdAuthRequired => "boolean",
 
     RsyncCsumCacheVerifyProb => "float",
     RsyncArgs          => {
@@ -228,19 +246,24 @@ use vars qw(%ConfigMeta);
            child  => "string",
     },
 
+    BackupPCdCmd        => "string",
+    BackupPCdPath       => "string",
+    BackupPCdShareName  => "string",
+    BackupPCdRestoreCmd => "string",
+
     ArchiveDest        => "string",
     ArchiveComp                => {
            type   => "select",
            values => [qw(none bzip2 gzip)],
     },
-    ArchivePar         => "integer",
+    ArchivePar         => "boolean",
     ArchiveSplit       => "float",
     ArchiveClientCmd   => "string",
 
     NmbLookupCmd       => "string",
     NmbLookupFindHostCmd => "string",
 
-    FixedIPNetBiosNameCheck => "integer",
+    FixedIPNetBiosNameCheck => "boolean",
     PingCmd            => "string",
     PingMaxMsec                => "float",
 
@@ -258,6 +281,7 @@ use vars qw(%ConfigMeta);
     RestorePostUserCmd => {type => "string", undefIfEmpty => 1},
     ArchivePreUserCmd  => {type => "string", undefIfEmpty => 1},
     ArchivePostUserCmd => {type => "string", undefIfEmpty => 1},
+    UserCmdCheckStatus  => "integer",
 
     ClientNameAlias    => {type => "string", undefIfEmpty => 1},
 
@@ -265,7 +289,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 +302,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 +310,15 @@ use vars qw(%ConfigMeta);
     CgiAdminUserGroup  => "string",
     CgiAdminUsers      => "string",
     CgiURL             => "string",
-    Language           => "string",
+    Language           => {
+           type   => "select",
+           values => [qw(de en es fr it nl pt_br)],
+    },
     CgiUserHomePageCheck => "string",
     CgiUserUrlCreate    => "string",
-    CgiDateFormatMMDD  => "integer",
-    CgiNavBarAdminAllHosts => "integer",
-    CgiSearchBoxEnable         => "integer",
+    CgiDateFormatMMDD  => "boolean",
+    CgiNavBarAdminAllHosts => "boolean",
+    CgiSearchBoxEnable         => "boolean",
     CgiNavBarLinks     => {
            type    => "list",
            emptyOk => 1,
@@ -324,6 +352,7 @@ use vars qw(%ConfigMeta);
         },
     CgiImageDirURL     => "string",
     CgiCSSFile         => "string",
+    CgiUserConfigEditEnable => "boolean",
     CgiUserConfigEdit   => {
            type => "hash",
            noKeyEdit => 1,
@@ -348,12 +377,18 @@ use vars qw(%ConfigMeta);
                 BackupZeroFilesIsFatal    => "boolean",
                 XferMethod                => "boolean",
                 XferLogLevel              => "boolean",
+                ClientCharset             => "boolean",
                 SmbShareName              => "boolean",
                 SmbShareUserName          => "boolean",
                 SmbSharePasswd            => "boolean",
+                SmbClientFullCmd          => "boolean",
+                SmbClientIncrCmd          => "boolean",
+                SmbClientRestoreCmd       => "boolean",
                 TarShareName              => "boolean",
                 TarFullArgs               => "boolean",
                 TarIncrArgs               => "boolean",
+                TarClientCmd              => "boolean",
+                TarClientRestoreCmd       => "boolean",
                 RsyncShareName            => "boolean",
                 RsyncdClientPort          => "boolean",
                 RsyncdPasswd              => "boolean",
@@ -361,16 +396,30 @@ use vars qw(%ConfigMeta);
                 RsyncCsumCacheVerifyProb  => "boolean",
                 RsyncArgs                 => "boolean",
                 RsyncRestoreArgs          => "boolean",
+                RsyncClientCmd            => "boolean",
+                RsyncClientRestoreCmd     => "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",
                 EMailNotifyMinDays        => "boolean",
                 EMailFromUserName         => "boolean",
                 EMailAdminUserName        => "boolean",
@@ -385,6 +434,25 @@ use vars qw(%ConfigMeta);
                 EMailOutlookBackupMesg    => "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 },
+               },
+           },
+    },
 );
 
 1;