fix url typo, must be same as name of the sub in config
[pxelator] / lib / PXElator / config.pm
1 package config;
2
3 use warnings;
4 use strict;
5 use autodie;
6
7 use server;
8 use pxelinux;
9 use client;
10 use File::Slurp;
11
12 sub available { qw/debian_live webconverger debirf tinycore/ };
13
14 sub debian_live {
15         my ($ip) = @_;
16
17         upstream::files( qw{
18                 http://cdimage.debian.org/cdimage/release/current-live/i386/web/
19                 vmlinuz1
20                 initrd1.img
21                 debian-live-501-i386-standard.squashfs
22         });
23
24         my $hostname = client::conf( $ip => 'hostname' ) || 'debian-live';
25
26         pxelinux::config_for_ip( $ip, qq{
27
28 default debian_live
29 label debian_live
30         kernel vmlinuz1
31         append initrd=initrd1.img fetch=http://${server::ip}:7777/debian_live/debian-live-501-i386-standard.squashfs boot=live nopersistent hostname=$hostname union=aufs
32         });
33
34 }
35
36 use upstream;
37
38 =head1 webconverger
39
40 Webconverger - the opensource Web Kiosk
41
42 L<http://webconverger.org/>
43
44 =cut
45
46 sub webconverger {
47         my ($ip) = @_;
48
49         upstream::iso( 'http://download.webconverger.com/webc-5.2.iso' );
50
51         my $homepage = client::conf( $ip => 'homepage', default => "http://${server::ip}:7777/client" );
52         my $hostname = client::conf( $ip => 'hostname' ) || 'webconverger';
53
54         pxelinux::config_for_ip( $ip, qq{
55
56 default webconverger
57 label webconverger
58         kernel iso/live/vmlinuz-2.6.30-backports.1-486
59         append initrd=iso/live/initrd.img-2.6.30-backports.1-486 fetch=http://${server::ip}:7777/webconverger/iso/live/filesystem.squashfs boot=live quiet nosudo splash video=vesa:ywrap,mtrr vga=788 nopersistent username=webc hostname=$hostname union=aufs homepage=$homepage locale=hr
60
61         });
62
63 }
64
65 =head1 debirf
66
67 debirf is a system that will create diskless, all-in-ram images (kernel and initramfs) that boot entirely into ram and leave the user in a fully functional Debian system. 
68
69 L<http://cmrg.fifthhorseman.net/wiki/debirf>
70
71 =cut
72
73 sub debirf {
74         my $ip = shift;
75
76         upstream::iso( 'http://cmrg.mayfirst.org/debirf/debirf-rescue_lenny_2.6.26-1-686.iso' );
77
78         pxelinux::config_for_ip( $ip, qq{
79
80 default linux
81 label linux
82         kernel iso/vmlinuz-2.6.26-1-686
83         append initrd=iso//debirf-rescue_lenny_2.6.26-1-686.cgz
84
85         });
86 }
87
88 sub tinycore {
89         my $ip = shift;
90         upstream::iso( 'http://distro.ibiblio.org/pub/linux/distributions/tinycorelinux/2.x/release/tinycore_2.2.iso' );
91         pxelinux::config_for_ip( $ip, qq{
92
93 default linux
94 label linux
95         kernel iso/boot/bzImage
96         append initrd=iso/boot/tinycore.gz
97
98         });
99 }
100
101 sub for_ip {
102         my $ip = shift;
103         my $deploy = client::conf( $ip => 'deploy', default => 'webconverger' );
104         eval $deploy . '($ip)';
105 #       $tftp::dir = "$server::base_dir/tftp/$pxelinux::path_prefix";
106 }
107
108 warn 'loaded';
109
110 1;