File: postinst

package info (click to toggle)
slbackup 0.0.12-3
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 332 kB
  • sloc: perl: 578; sh: 83; makefile: 37
file content (83 lines) | stat: -rw-r--r-- 2,771 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/usr/bin/perl -w
#
# slbackup postinst script using debconf
#
# Written by Morten Werner Olsen <werner@skolelinux.no>
#

use strict;
use Debconf::Client::ConfModule ":all";
use Config::General;


## subsections
sub writeconfig {
    my ($datafilename, $data) = @_;
    
}

## start postinst

if ($ARGV[0] and $ARGV[0] eq "configure") {
    # fetch debconf-variables for slbackup
    my $enable = get("slbackup/enable");
    my $backuptime = get("slbackup/backuptime");
    my $client_name = get("slbackup/client_name");
    my $client_type = get("slbackup/client_type");
    my $client_address = get("slbackup/client_address");
    my $client_user = get("slbackup/client_user");
    my $client_location = get("slbackup/client_location");
    my $client_keep = get("slbackup/client_keep");
    my $server_type = get("slbackup/server_type");
    my $server_destdir = get("slbackup/server_destdir");
    my $server_address = get("slbackup/server_address");
    my $server_user = get("slbackup/server_user");

    # check if config-file (/etc/slbackup/slbackup.conf) exists, and
    # if it doesn't, we'll make one
    if  ( ! -e "/etc/slbackup/slbackup.conf" ) {
	# make config file
	my %confighash;
	my $config = \%confighash;
	$config->{client}->{$client_name}->{address} = $client_address;
	$config->{client}->{$client_name}->{type} = $client_type;
	$config->{client}->{$client_name}->{user} = $client_user;
	my @location = split(/ /, $client_location);
	if (scalar(@location) eq 1) {
	    $config->{client}->{$client_name}->{location} = $location[0];
	} elsif (scalar(@location) gt 1) {
	    @{$config->{client}->{$client_name}->{location}} = @location;
	}
	$config->{client}->{$client_name}->{keep} = $client_keep;
	$config->{server_type} = $server_type;
	$config->{server_destdir} = $server_destdir;
	$config->{server_address} = $server_address;
	$config->{server_user} = $server_user;
	
	# write configuration file
	my $datafile = new Config::General();
	$datafile->save_file("/etc/slbackup/slbackup.conf", $config);
    }
    
#    # check if file specifying cron-job exists and if the user wanted to
#    # configure slbackup now, and make one the answers to both questions
#    # are "yes"
#    if ( ! -e "/etc/cron.d/slbackup" and $enable eq "true") {
#	# make cron-job
#	my $crontab = "# cron job for Skolelinux Backup (once a day)\n";
#	if ($enable eq "false") { $crontab .= "#"; }
#	my ($hour, $min) = split(/:/, $backuptime);
#	$crontab .= "$min $hour * * * root if [ -x " .
#	    "/usr/share/slbackup/slbackup-cron -a -f " .
#	    "/etc/slbackup/slbackup.conf ]; then " . 
#	    "/usr/share/slbackup/slbackup-cron ; fi\n";
#    
#	open(CRONFILE, ">/etc/cron.d/slbackup");
#	print(CRONFILE "$crontab");
#	close(CRONFILE);
#    }
}

system('
#DEBHELPER#
');