1 package BackupPC::Config;
8 # this currently isn't used (or completed)
14 my($attr, $val, $def, $ref);
16 foreach $attr (sort keys %{ $self->{Conf} }) {
17 $val = $self->{Conf}->{$attr};
19 $def = $ConfigDef{$attr};
22 $errstr .= "Unknown attribute $attr; ";
23 } elsif ($def->{struct} eq 'SCALAR' && $ref) {
24 $errstr .= "$attr expected to be SCALAR but is $ref; ";
25 } elsif ($def->{struct} =~ /^ARRAY(OFHASH)$/ && $ref && $ref ne 'ARRAY') {
26 $errstr .= "$attr expected to be ARRAY but is $ref; ";
27 } elsif ($def->{struct} =~ /^HASH(OFARRAY)$/ && $ref && $ref ne 'HASH') {
28 $errstr .= "$attr expected to be HASH but is $ref; ";
29 # still working out this logic..
30 #} elsif (defined $val && !$ref) {
31 # # if we got a scalar but were expecting a reference, fix it
33 # if($def->{struct} eq 'ARRAY') {
35 # } elsif ($def->{struct} eq 'HASH') {
37 # } elsif ($def->{struct} eq 'ARRAYOFHASH') {
38 # $val = [ { $val } ];
39 # } elsif ($def->{struct} eq 'HASHOFARRAY') {
40 # $val = { [ $val ] };
52 return $self->{TopDir};
58 return $self->{BinDir};
64 return $self->{Version};
70 return %{$self->{Conf}};
92 return " trashClean ";
97 my($self, $t, $noPad) = @_;
98 my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)
99 = localtime($t || time);
102 return "$year/$mon/$mday " . sprintf("%02d:%02d:%02d", $hour, $min, $sec)
103 . ($noPad ? "" : " ");
108 # fallback routine in case no database used
113 ###########################
117 ServerHost => {struct => 'SCALAR',
120 ServerPort => {struct => 'SCALAR',
123 ServerMesgSecret => {struct => 'SCALAR',
126 MyPath => {struct => 'SCALAR',
129 UmaskMode => {struct => 'SCALAR',
132 WakeupSchedule => {struct => 'ARRAY',
135 MaxBackups => {struct => 'SCALAR',
138 MaxUserBackups => {struct => 'SCALAR',
141 MaxPendingCmds => {struct => 'SCALAR',
144 MaxOldLogFiles => {struct => 'SCALAR',
147 DfPath => {struct => 'SCALAR',
150 DfMaxUsagePct => {struct => 'SCALAR',
153 TrashCleanSleepSec => {struct => 'SCALAR',
156 DHCPAddressRanges => {struct => 'ARRAYOFHASH',
157 type => {ipAddrBase => 'STRING',
161 BackupPCUser => {struct => 'SCALAR',
164 CgiDir => {struct => 'SCALAR',
167 InstallDir => {struct => 'SCALAR',
170 BackupPCUserVerify => {struct => 'SCALAR',
171 type => 'BOOLEAN', },
173 SmbShareName => {struct => 'ARRAY',
176 SmbShareUserName => {struct => 'SCALAR',
179 SmbSharePasswd => {struct => 'SCALAR',
182 TarShareName => {struct => 'ARRAY',
185 FullPeriod => {struct => 'SCALAR',
188 IncrPeriod => {struct => 'SCALAR',
191 FullKeepCnt => {struct => 'SCALAR',
194 FullKeepCntMin => {struct => 'SCALAR',
197 FullAgeMax => {struct => 'SCALAR',
200 IncrKeepCnt => {struct => 'SCALAR',
203 IncrKeepCntMin => {struct => 'SCALAR',
206 IncrAgeMax => {struct => 'SCALAR',
209 IncrFill => {struct => 'SCALAR',
210 type => 'BOOLEAN', },
212 RestoreInfoKeepCnt => {struct => 'SCALAR',
215 BackupFilesOnly => {struct => 'HASHOFARRAY',
218 BackupFilesExclude => {struct => 'HASHOFARRAY',
221 BlackoutBadPingLimit => {struct => 'SCALAR',
224 BlackoutGoodCnt => {struct => 'SCALAR',
227 BlackoutHourBegin => {struct => 'SCALAR',
230 BlackoutHourEnd => {struct => 'SCALAR',
233 BlackoutWeekDays => {struct => 'ARRAY',
236 XferMethod => {struct => 'SCALAR',
239 SmbClientPath => {struct => 'SCALAR',
242 SmbClientArgs => {struct => 'SCALAR',
245 TarClientCmd => {struct => 'SCALAR',
248 TarFullArgs => {struct => 'SCALAR',
251 TarIncrArgs => {struct => 'SCALAR',
254 TarClientRestoreCmd => {struct => 'SCALAR',
257 TarClientPath => {struct => 'SCALAR',
260 SshPath => {struct => 'SCALAR',
263 NmbLookupPath => {struct => 'SCALAR',
266 FixedIPNetBiosNameCheck => {struct => 'SCALAR',
267 type => 'BOOLEAN', },
269 PingPath => {struct => 'SCALAR',
272 PingArgs => {struct => 'SCALAR',
275 CompressLevel => {struct => 'SCALAR',
278 PingMaxMsec => {struct => 'SCALAR',
281 SmbClientTimeout => {struct => 'SCALAR',
284 MaxOldPerPCLogFiles => {struct => 'SCALAR',
287 SendmailPath => {struct => 'SCALAR',
290 EMailNotifyMinDays => {struct => 'SCALAR',
293 EMailFromUserName => {struct => 'SCALAR',
296 EMailAdminUserName => {struct => 'SCALAR',
299 EMailNoBackupEverMesg => {struct => 'SCALAR',
302 EMailNotifyOldBackupDays => {struct => 'SCALAR',
305 EMailNoBackupRecentMesg => {struct => 'SCALAR',
308 EMailNotifyOldOutlookDays => {struct => 'SCALAR',
311 EMailOutlookBackupMesg => {struct => 'SCALAR',
314 CgiAdminUserGroup => {struct => 'SCALAR',
317 CgiAdminUsers => {struct => 'SCALAR',
320 Language => {struct => 'SCALAR',
323 CgiUserHomePageCheck => {struct => 'SCALAR',
326 CgiUserUrlCreate => {struct => 'SCALAR',
329 CgiDateFormatMMDD => {struct => 'SCALAR',
330 type => 'BOOLEAN', },
332 CgiNavBarAdminAllHosts => {struct => 'SCALAR',
333 type => 'BOOLEAN', },
335 CgiHeaders => {struct => 'SCALAR',
338 CgiImageDir => {struct => 'SCALAR',
341 CgiImageDirURL => {struct => 'SCALAR',