diff options
author | Sebastian Schmelzer | 2008-12-15 00:16:12 +0100 |
---|---|---|
committer | Sebastian Schmelzer | 2008-12-15 00:16:12 +0100 |
commit | 7606f85ee41a0e123e5e753f3a5b6a8ae31dc098 (patch) | |
tree | ca842313c73a906c5302fb8bda7b52ba7e7dcdda /lib/OpenSLX/DistroUtils/InitFile.pm | |
parent | xserver plugin: * make installation less verbose (diff) | |
download | core-7606f85ee41a0e123e5e753f3a5b6a8ae31dc098.tar.gz core-7606f85ee41a0e123e5e753f3a5b6a8ae31dc098.tar.xz core-7606f85ee41a0e123e5e753f3a5b6a8ae31dc098.zip |
* first ideas of distro based utilities
* usage:
use OpenSLX::DistroUtils;
# get initfile object
my $initfile = newInitFile();
# modify the object
$initfile->addToBlock('head', 'set some variables');
# 3rd parameter is setting the priority of the entry
# default is 5
$initfile->addToBlock('head', 'set sth at the very beginning', 1);
$initfile->addToBlock('start', '/bin/startsomething');
$initfile->addToBlock('stop', '/bin/stopsomething');
$initfile->setName('foo');
..
# get generated content of initfile
$source = getInitFileForDistro($initfile, 'Ubuntu');
git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@2405 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'lib/OpenSLX/DistroUtils/InitFile.pm')
-rw-r--r-- | lib/OpenSLX/DistroUtils/InitFile.pm | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/lib/OpenSLX/DistroUtils/InitFile.pm b/lib/OpenSLX/DistroUtils/InitFile.pm new file mode 100644 index 00000000..e26ec6ad --- /dev/null +++ b/lib/OpenSLX/DistroUtils/InitFile.pm @@ -0,0 +1,92 @@ +package OpenSLX::DistroUtils::InitFile; + +use strict; +use warnings; + +sub new { + my $class = shift; + my $params = shift || {}; + my $self = { + }; + + $self->{'configHash'} = _initialConfigHash(); + + return bless $self, $class; +} + +sub _initialConfigHash() { + return { + 'name' => "", + 'requiredStart' => "", + 'requiredStop' => "", + 'defaultStart' => "2 3 4 5", + 'defaultStop' => "1", + 'shortDesc' => "", + + 'head' => { + 'blockDesc' => "head: file existing checks, etc.", + 'content' => {} + }, + 'functions' => { + 'blockDesc' => "functions: helper functions", + 'content' => {} + }, + 'start' => { + 'blockDesc' => "start: defines start function for initscript", + 'content' => {} + }, + 'stop' => { + 'blockDesc' => "stop: defines stop function for initscript", + 'content' => {} + }, + 'reload' => { + 'blockDesc' => "reload: defines reload function for initscript", + 'content' => {} + }, + 'restart' => { + 'blockDesc' => "restart: defines restart function for initscript", + 'content' => {} + }, + 'status' => { + 'blockDesc' => "status: defines status function for initscript", + 'content' => {} + }, + 'usage' => { + 'blockDesc' => "usage: defines usage function for initscript", + 'content' => {} + } + }; +} + +sub addToBlock { + my $self = shift; + my $blockName = shift; + my $content = shift; + my $priority = shift || 5; + + #check if block is valid.. + + push(@{$self->{'configHash'}->{$blockName}->{'content'}->{$priority}}, $content); + + return $self; +} + +sub setName { + my $self = shift; + my $name = shift; + + $self->{'configHash'}->{'name'} = $name; + return $self; +} + +sub setDesc { + my $self = shift; + my $desc = shift; + + $self->{'configHash'}->{'shortDesc'} = $desc; + return $self; +} + + + +1;
\ No newline at end of file |