implement client::conf to fetch/set (with default) client configuration
[pxelator] / lib / PXElator / server.pm
index 4dad1a8..dda409c 100644 (file)
@@ -1,4 +1,42 @@
 package server;
 
-our $ip = '172.16.10.1';
+use warnings;
+use strict;
 
+
+our $ip      = '172.16.10.1';
+our $netmask = '255.255.255.0';
+
+our ( $ip_from, $ip_to ) = ( 10, 100 );
+
+our $domain_name = 'pxelator.lan';
+
+our $base_dir = '/srv/pxelator';
+
+our $conf = "$base_dir/conf/$ip";
+
+use Module::Refresh qw//;
+sub refresh { Module::Refresh->refresh };
+
+
+mkdir $_ foreach grep { ! -d $_ } map { "$conf/$_" } ( 'ip', 'mac' );
+
+use File::Slurp;
+sub shared {
+       my ($name, $value) = @_;
+
+       my $path ="$conf/$name";
+       if ( defined $value ) {
+               write_file $path, $value;
+               warn "update $path = $value";
+       } else {
+               $value = read_file $path if -e $path;
+       }
+       return $value;
+}
+
+sub debug { shared('debug', @_) || 0 }
+
+warn "loaded";
+
+1;