diff options
Diffstat (limited to 'perl-install')
-rwxr-xr-x | perl-install/standalone/drakfloppy | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/perl-install/standalone/drakfloppy b/perl-install/standalone/drakfloppy index fdfe8f948..73f10be5b 100755 --- a/perl-install/standalone/drakfloppy +++ b/perl-install/standalone/drakfloppy @@ -56,6 +56,12 @@ unless ($::isEmbedded) { my ($output, @modules, @temp_modules, %buttons, %options, $tree_model, $tree, $list_model, $list); +my $conffile = "/etc/sysconfig/drakfloppy"; + +# we must be robust against config file parsing +eval { %options = getVarsFromSh($conffile); } or warn N("Error while parsing \"MODULES\" line from $conffile"); +@modules = split (' ', $options{MODULES}); + ######## up part @@ -176,7 +182,12 @@ sub pref_dialog() { # restore values: $buttons{$_}->set_active($options{$_}) foreach keys %buttons; fill_tree($kernel_combo->entry->get_text); - $list_model->append_set([ map_index { $::i => $_ } @$_ ]) foreach @modules; + foreach my $module (@modules) { + my $full_path = join('/', "/lib/modules", $kernel_combo->entry->get_text, $module); + my $size = get_file_size($full_path); + $list_model->append_set(map_index { $::i => $_ } $module, $size, $full_path); + } + $remove_but->set_sensitive(scalar @modules); @temp_modules = (); @@ -189,7 +200,7 @@ sub pref_dialog() { @modules = (); $list_model->foreach(sub { my ($model, $_path, $iter) = @_; - push @modules, [ $model->get($iter, 0), $model->get($iter, 1), $model->get($iter, 2) ]; + push @modules, $model->get($iter, 0); return 0; }, $val); $dialog->destroy; @@ -226,7 +237,7 @@ sub selected_tree { return if -d $file; - my $size = (lstat($file))[7]; + my $size = get_file_size($file); return if member($file, @temp_modules); push @temp_modules, $file; @@ -277,7 +288,10 @@ sub build_it() { $co .= " --mkinitrdargs --ifneeded" if $options{needed}; $co .= " --mkinitrdargs --omit-scsi-modules" if $options{scsi}; $co .= " --mkinitrdargs --omit-raid-modules" if $options{raid}; - $co .= join(" --mkinitrdargs --with=", map { $_->[0] } @modules); + $co .= join(" --mkinitrdargs --with=", @modules); + $options{MODULES} = join(' ', @modules); + setVarsInSh($conffile, \%options); + $co .= " " . $kernel_combo->entry->get_text; $co .= " 2>&1 |"; $::testing or warn_dialog(N("Warning"), N("Be sure a media is present for the device %s", $device_combo->entry->get_text)) or return; @@ -302,6 +316,11 @@ sub build_it() { return (0); } +sub get_file_size { + my ($file) = @_; + (lstat($file))[7]; +} + #### # This is put at the end of the file because any translatable string # appearing after this will not be found by xgettext, and so wont end in |