summaryrefslogtreecommitdiffstats
path: root/lib/MDV/Distribconf.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/MDV/Distribconf.pm')
-rw-r--r--lib/MDV/Distribconf.pm29
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/MDV/Distribconf.pm b/lib/MDV/Distribconf.pm
index 0779db0..ecb58fb 100644
--- a/lib/MDV/Distribconf.pm
+++ b/lib/MDV/Distribconf.pm
@@ -219,6 +219,35 @@ sub loadtree {
return 1;
}
+=head2 $distrib->settree($spec)
+
+Virtual set the internal structure of the distrib.
+
+$spec can be 'mandrake' or 'mandriva' to automatically load a know structure
+(old and new fascion, or a hashref:
+
+ mediadir => 'media',
+ infodir => 'media/media_info',
+
+=cut
+
+sub settree {
+ my ($distrib, $spec) = @_;
+
+ if (ref($spec) eq 'HASH') {
+ foreach (qw(infodir mediadir)) {
+ $distrib->{$_} = $spec->{$_} || '';
+ }
+ } elsif ($spec && $spec =~ /mandrake/i) {
+ $distrib->{infodir} = "Mandrake/base";
+ $distrib->{mediadir} = "Mandrake";
+ } else { # finally it can be everything, we do not care
+ $distrib->{infodir} = "media/media_info";
+ $distrib->{mediadir} = "media";
+ }
+}
+
+
=head2 $distrib->parse_hdlists($hdlists)
Reads the F<hdlists> file whose path is given by the parameter $hdlist,