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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
#! /usr/bin/perl
#
# slxos-setup -
#
# (c) 2006 - OpenSLX.com
#
# Oliver Tappe <ot@openslx.com>
#
use strict;
my $abstract = q[
slxos-setup
This script installs an operating system into a folder that can be used as
a stage1 system for OpenSLX.
];
use Getopt::Long qw(:config pass_through);
use Pod::Usage;
# add the folder this script lives in and the lib-folder to perl's
# search path for modules:
use FindBin;
use lib "$FindBin::RealBin";
use lib "$FindBin::RealBin/../lib";
use OpenSLX::Basics;
use OpenSLX::OSSetup::Engine;
if ($> != 0) {
die _tr("Sorry, this script can only be executed by the superuser!\n");
}
my (
$helpReq,
$manReq,
$listReq,
$setupRepos,
$verbose,
$versionReq,
);
GetOptions(
'help|?' => \$helpReq,
'list' => \$listReq,
'man' => \$manReq,
'setup-repos' => \$setupRepos,
'verbose' => \$verbose,
'version' => \$versionReq,
) or pod2usage(2);
pod2usage(-msg => $abstract, -verbose => 0, -exitval => 1) if $helpReq;
pod2usage(-verbose => 2) if $manReq;
if ($versionReq) {
system('slxversion');
exit 1;
}
openslxInit();
if ($listReq) {
print _tr("List of supported distros:\n\t");
print join("\n\t", keys %supportedDistros)."\n";
exit 1;
}
if (scalar(@ARGV) != 1) {
print STDERR _tr("You need to specify exactly one distro name!\n");
pod2usage(2);
}
# we chdir into the script's folder such that all relative paths have
# a known starting point:
chdir($FindBin::RealBin)
or die _tr("can't chdir to script-path <%> (%s)", $FindBin::RealBin, $!);
# create ossetup-engine for given distro and start it:
my $distroName = $ARGV[0];
my $engine = OpenSLX::OSSetup::Engine->new;
if ($setupRepos) {
$engine->initialize($distroName, 0);
$engine->setupRepositories();
} else {
$engine->initialize($distroName, 1);
$engine->setupStage1();
}
__END__
=head1 NAME
slxos-setup - OpenSLX-script to install an operating system into a folder which
will be used as a stage1 system for OpenSLX.
=head1 SYNOPSIS
slxos-setup [options] <distro-name>
Options:
--help brief help message
--man show full documentation
--version show version
=head1 OPTIONS
=over 8
=item B<--help>
Prints a brief help message and exits.
=item B<--man>
Prints the manual page and exits.
=item B<--version>
Prints the version and exits.
=back
=cut
|