From: Nick J. <nje...@us...> - 2002-02-18 12:15:36
|
Update of /cvsroot/sandweb/sandweb/lib/SandWeb In directory usw-pr-cvs1:/tmp/cvs-serv31730/lib/SandWeb Modified Files: Config.pm Repository.pm Log Message: * checkout now works (maintains data structure). * all (most) data accessing is now encapsulation in CGI * fixed misc. bugs in Config and Repository Index: Config.pm =================================================================== RCS file: /cvsroot/sandweb/sandweb/lib/SandWeb/Config.pm,v retrieving revision 1.19 retrieving revision 1.20 diff -U2 -r1.19 -r1.20 --- Config.pm 18 Feb 2002 11:16:16 -0000 1.19 +++ Config.pm 18 Feb 2002 12:15:33 -0000 1.20 @@ -20,4 +20,5 @@ my $self = bless { %{$cfg}, %args, }, $class; + $self->manage_data_structure(); return $self; } @@ -43,4 +44,34 @@ } +sub manage_data_structure { + my $self = shift; + # make sure data structure containing repositories is consistent + if ( ($self->{'repo'}->{'type'}) && + (ref(\$self->{'repo'}->{'type'}) eq 'SCALAR')) { + + my %temp = %{$self->{'repo'}}; + %{$self->{'repo'}} = (); + %{$self->{'repo'}->{$temp{'name'}}} = %temp; + } + + foreach my $repo_name ($self->get_repo_list()) { + if ( ($self->{'repo'}->{$repo_name}->{'module'}->{'name'}) && + (ref(\$self->{'repo'}->{$repo_name}->{'module'}->{'name'}) eq 'SCALAR')) { + + my %temp = %{$self->{'repo'}->{$repo_name}->{'module'}}; + %{$self->{'repo'}->{$repo_name}->{'module'}} = (); + %{$self->{'repo'}->{$repo_name}->{'module'}->{$temp{'name'}}} = %temp; + } + } + +# foreach my $repo_name ($self->get_repo_list()) { +# if (ref(\$self->{'repo'}->{$repo_name}->{'module_list'}) ne 'ARRAY') { +# my $temp_module = $self->{'repo'}->{$repo_name}->{'module_list'}; +# $self->{'repo'}->{$repo_name}->{'module_list'} = []; +# push @{$self->{'repo'}->{$repo_name}->{'module_list'}}, $temp_module; +# } +# } +} + ############################################################################# @@ -104,5 +135,6 @@ my $self = shift; my %args = @_; - my $repo_name = $args{'repo'}; + my $log = $self->{'log_obj'}; + my $repo_name = $args{'repo'} || ''; my @repo_list = $self->get_repo_list(); foreach my $repo (@repo_list) { @@ -118,5 +150,5 @@ my $self = shift; my %args = @_; - my $name = $args{'repo'}; + my $name = $args{'name'} || ''; my $server = $args{'server'} || ''; my $connection = $args{'connection'} || ''; @@ -124,12 +156,13 @@ my $root = $args{'root'} || ''; + return 0 if (!$name); if ($self->repository_exists(repo => $name)) { return 0; } else { - $user->{'repo'}->{$name}->{'name'} = $name; - $user->{'repo'}->{$name}->{'server'} = $server; - $user->{'repo'}->{$name}->{'connection'} = $connection; - $user->{'repo'}->{$name}->{'type'} = $type; - $user->{'repo'}->{$name}->{'root'} = $root; + $self->{'repo'}->{$name}->{'name'} = $name; + $self->{'repo'}->{$name}->{'server'} = $server; + $self->{'repo'}->{$name}->{'connection'} = $connection; + $self->{'repo'}->{$name}->{'type'} = $type; + $self->{'repo'}->{$name}->{'root'} = $root; } } @@ -148,9 +181,9 @@ return 0; } else { - $user->{'repo'}->{$name}->{'name'} = $name; - $user->{'repo'}->{$name}->{'server'} = $server if ($server); - $user->{'repo'}->{$name}->{'connection'} = $connection if ($connection); - $user->{'repo'}->{$name}->{'type'} = $type if ($type); - $user->{'repo'}->{$name}->{'root'} = $root if ($root); + $self->{'repo'}->{$name}->{'name'} = $name; + $self->{'repo'}->{$name}->{'server'} = $server if ($server); + $self->{'repo'}->{$name}->{'connection'} = $connection if ($connection); + $self->{'repo'}->{$name}->{'type'} = $type if ($type); + $self->{'repo'}->{$name}->{'root'} = $root if ($root); } } @@ -291,7 +324,9 @@ my $self = shift; my %args = @_; - my $repo_name = $args{'repo'}; - return '' if (!$repo_name); - return sort keys %{$self->{'repo'}->{$repo_name}->{'module'}}; + my $repo = $args{'repo'}; + return '' if (!$repo); + + # verify module structure + return sort keys %{$self->{'repo'}->{$repo}->{'module'}}; } @@ -304,6 +339,8 @@ my $self = shift; my %args = @_; - my $module_name = $args{'module_name'}; - my @module_list = $self->get_module_list(); + my $repo = $args{'repo'} || ''; + my $module_name = $args{'module'} || ''; + my @module_list = $self->get_module_list( repo => $repo ); + foreach my $module (@module_list) { if ($module eq $module_name) { @@ -317,11 +354,12 @@ my $self = shift; my %args = @_; - my $repo = $args{'repo'}; - my $module = $args{'module'}; + my $log = $self->{'log_obj'}; + my $repo = $args{'repo'} || ''; + my $module = $args{'module'} || ''; my $module_desc = $args{'module_desc'} || ''; - if ($self->repository_exists(repo => $repo_name)) { + if ($self->repository_exists(repo => $repo)) { if (!$self->module_exists( - repo => $repo_name, - module => $module_name)) { + repo => $repo, + module => $module)) { $self->{'repo'}->{$repo}->{'module'}->{$module}->{'desc'} = $module_desc; @@ -329,9 +367,9 @@ $module; } else { - $self->{'log_obj'}->("module '$module' already exists for repo '$repo'.\n"); + $log->debug("module '$module' already exists for repo '$repo'.\n"); return 0; } } else { - $self->{'log_obj'}->("repo '$repo' already exists.\n"); + $log->debug("repo '$repo' does not exist.\n"); return 0; } @@ -342,4 +380,5 @@ my $self = shift; my %args = @_; + my $log = $self->{'log_obj'}; my $repo = $args{'repo'}; my $module = $args{'module'}; @@ -347,13 +386,13 @@ if (!$self->repository_exists(repo => $repo_name)) { if ($self->module_exists( - repo => $repo_name, + repo => $repo, module => $module )) { return $self->{'repo'}->{$repo}->{'module'}->{$module}->{'module_desc'} || ''; } else { - $self->{'log_obj'}->("module '$module' does not exist for repo '$repo'.\n"); + $log->debug("module '$module' does not exist for repo '$repo'.\n"); return ''; } } else { - $self->{'log_obj'}->("repo '$repo' does not exist.\n"); + $log->debug("repo '$repo' does not exist.\n"); return ''; } Index: Repository.pm =================================================================== RCS file: /cvsroot/sandweb/sandweb/lib/SandWeb/Repository.pm,v retrieving revision 1.19 retrieving revision 1.20 diff -U2 -r1.19 -r1.20 --- Repository.pm 13 Feb 2002 07:42:34 -0000 1.19 +++ Repository.pm 18 Feb 2002 12:15:33 -0000 1.20 @@ -135,5 +135,5 @@ my $root = $self->get_root(); my $sandbox = $self->get_sandbox(); - my %return = {}; + my %return; my $vcs = SandWeb::Repository::CVS->new( root => $root, |