In an attempt to write up some scripts to allow simple management of the
various XML files, I think the easiest way, for me, is to use perl.

At the moment the vague plan is
WPKG.pm
 -> WPKG::Hosts.pm
 -> WPKG::Packages.pm
 -> WPKG::Profiles.pm

The client management code, ie cgi page will call WPKG.pm which will
open the xml files using the other three modules. A skeleton of
WPKG::Profiles is included below for a brief idea of what I am thinking.
The client code will essentially run

$wpkg = new WPKG("Directory");
$wpkg->add_host("foobar", "custom");
$wpkg->add_profile_package("custom", "msoffice");

The modules then will do all the magic in ensuring that "msoffice"
exists and that "custom" is a valid profile-id.

Or direct addressing if required in:
$wpkg->{packages}->{wpkg1}->{name} = "Windows Packager sample 1";

The main aim is to make writing a web interface "easy" as it is all
calls against perl modules which should strip requirements for worrying
about concistency/XML formatting/...

Any problems, suggestions before I go further with writing this?

-- 
Nich

-- WPKG::Profiles
package WPKG::Profiles;

use 5.008005;
use strict;
use warnings;

require Exporter;

use XML::Simple;
use Carp;

our @ISA = qw(Exporter);

our %EXPORT_TAGS = ( 'all' => [ qw(

) ] );

our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );

our @EXPORT = qw(
);

our $VERSION = '1.00';

sub new
{
    my ($class) = shift;
    my $self = {};
    my $file = 'profiles.xml';

    my @argv = @_;
    if ( $#argv == 0 ) {
        $file = shift;
    }

    if ( ! -f $file || ! -r $file || ! -w $file) {
        croak("$class: File $file is not a valid file or cannot be
              read/written to");
    }

    my $x = XMLin($file);

    $self -> {profile} = $x;
    $self -> {file} = $file;

    bless($self, $class);
    return $self;
}

sub save
{
    my ($self) = shift;

    XMLout($self->{profile},
                 RootName => "profiles",
                 OutputFile => $self->{file}
                );
}

sub add_profile
{
    my ($self) = shift;
    my ($name) = shift;
}

sub rm_profile
{
    my ($self) = shift;
    my ($name) = shift;
}

sub add_depend
{
    my ($self) = shift;
    my ($name, $depend) = @_;
}

sub rm_depend
{
    my ($self) = shift;
    my ($name, $depend) = @_;
}

sub add_package
{
    my ($self) = shift;
    my ($name, $package) = @_;
}

sub rm_package
{
    my ($self) = shift;
    my ($name, $package) = @_;
}

1;


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
wpkg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wpkg-users

Reply via email to