From 7606f85ee41a0e123e5e753f3a5b6a8ae31dc098 Mon Sep 17 00:00:00 2001 From: Sebastian Schmelzer Date: Sun, 14 Dec 2008 23:16:12 +0000 Subject: * 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 --- lib/OpenSLX/DistroUtils/InitFile.pm | 92 +++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 lib/OpenSLX/DistroUtils/InitFile.pm (limited to 'lib/OpenSLX/DistroUtils/InitFile.pm') 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 -- cgit v1.2.3-55-g7522