/[cvs]/nfo/perl/libs/Data/Rap/Command.pm
ViewVC logotype

Annotation of /nfo/perl/libs/Data/Rap/Command.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations)
Tue Feb 18 15:35:06 2003 UTC (21 years, 4 months ago) by joko
Branch: MAIN
+ initial commit

1 joko 1.1 ## ----------------------------------------------------------------------
2     ## $Id: Ref.pm,v 1.1 2003/01/22 17:59:22 root Exp $
3     ## ----------------------------------------------------------------------
4     ## $Log: Ref.pm,v $
5     ## ----------------------------------------------------------------------
6    
7    
8     package Data::Rap::Command;
9    
10     use strict;
11     use warnings;
12    
13    
14     use Data::Dumper;
15     use Hash::Merge qw( merge );
16     use shortcuts qw( run_cmd );
17     use DesignPattern::Object;
18    
19    
20     sub _exec {
21     my $script = shift;
22     my $task = shift;
23     if ($script) {
24     my @buf;
25     foreach (keys %$task) {
26     my $value = $task->{$_};
27     if ($value =~ /\s/) {
28     $value = "\"$value\"";
29     }
30     push @buf, "--$_=$value";
31     }
32     my $cmd = $script . ' ' . join(' ', @buf);
33     run_cmd($cmd);
34     } else {
35     #$bizProcess->runSync($task);
36     }
37     }
38    
39     sub _echo {
40     my $self = shift;
41     my $args = shift;
42     #print Dumper($args);
43     my $message;
44     my $level;
45    
46     if (ref $args eq 'HASH') {
47     $message = $args->{message};
48     $level = $args->{level};
49     } else {
50     my @buf = ();
51     push @buf, $args;
52     push @buf, @_;
53     $message = join(' ', @buf);
54     }
55    
56     $message ||= 'n/a';
57     $level ||= 'info';
58    
59     $self->log($message, $level);
60     }
61    
62     sub _context {
63     my $self = shift;
64     my $args = shift;
65     #print Dumper($args);
66     foreach my $task_command (keys %$args) {
67     my $bunch = $args->{$task_command};
68     foreach my $task_args (@$bunch) {
69     #print Dumper($task_args);
70     $self->run_command($task_command, $task_args);
71     }
72     }
73     }
74    
75     # FIXME
76     sub _id {}
77    
78     # FIXME
79     sub _description {}
80    
81     sub _feed {
82     my $self = shift;
83    
84     }
85    
86     sub _bootDatabases {
87     my $self = shift;
88     #print Dumper($self->{config}->{databases});
89    
90     $self->log("Using Database(s): " . join(', ', @{$self->{use_databases}}), 'info');
91    
92     my $dbcfg;
93     my $container = DesignPattern::Object->fromPackage('Data::Storage::Container');
94    
95     # just boot specified databases
96     if (my $dbkeys = $self->{use_databases}) {
97     foreach (@$dbkeys) {
98     $dbcfg->{$_} = $self->{config}->{databases}->{$_};
99     }
100    
101     # boot all databases
102     } else {
103     $dbcfg = $self->{config}->{databases};
104     }
105    
106     foreach (keys %$dbcfg) {
107     $container->addConfig($_, $dbcfg->{$_});
108     }
109    
110     $container->initLocators();
111     $container->initStorages();
112    
113     foreach (keys %{$container->{storage}}) {
114     $self->{storage}->{$_} = $container->{storage}->{$_};
115     }
116     }
117    
118     sub _depends_old {
119     my $self = shift;
120     my $args = shift;
121     #print Dumper($args);
122     $self->performTarget($args);
123     }
124    
125     sub _dump {
126     my $self = shift;
127     my $args = shift;
128     my $name = $args->{name};
129     my $message = Dumper($self->{$name});
130     $self->rc('echo', $message, $args->{level});
131     }
132    
133     sub _plugin {
134     my $self = shift;
135     my $args = shift;
136     if (my $name = $args->{name}) {
137     $self->load($name);
138     }
139     }
140    
141     sub _rapcall {
142     my $self = shift;
143     my $args = shift;
144     if (my $command = $args->{command}) {
145     $self->run_command($command, $args);
146     }
147    
148     }
149    
150    
151     1;
152     __END__

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed