summaryrefslogtreecommitdiffstats
path: root/lib/OpenSLX/DistroUtils/InitFile.pm
diff options
context:
space:
mode:
authorSebastian Schmelzer2008-12-15 00:16:12 +0100
committerSebastian Schmelzer2008-12-15 00:16:12 +0100
commit7606f85ee41a0e123e5e753f3a5b6a8ae31dc098 (patch)
treeca842313c73a906c5302fb8bda7b52ba7e7dcdda /lib/OpenSLX/DistroUtils/InitFile.pm
parentxserver plugin: * make installation less verbose (diff)
downloadcore-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.pm92
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