From a845140044510ef3fdc179b333301218d3faefe5 Mon Sep 17 00:00:00 2001 From: Guillaume Cottenceau Date: Fri, 18 Jan 2002 20:22:20 +0000 Subject: - write the 'common' part of the 'explanations' stuff, with nice help from Pixel for the tough Perl part - move 'use standalone' up in all standalone apps, to comply to 'explanations' --- perl-install/standalone.pm | 130 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) (limited to 'perl-install/standalone.pm') diff --git a/perl-install/standalone.pm b/perl-install/standalone.pm index eea2cf5ca..a9eeb9af0 100644 --- a/perl-install/standalone.pm +++ b/perl-install/standalone.pm @@ -23,6 +23,7 @@ sub install { my ($o, @l) = @_; $o->{in}->suspend; my $wait = $o->{in}->wait_message('', _("Installing packages...")); + standalone::explanations("installed packages @l"); my $ret = system('urpmi', '--allow-medium-change', '--auto', '--best-output', @l) == 0; undef $wait; $o->{in}->resume; @@ -37,6 +38,7 @@ sub is_installed { sub remove { my ($o, @l) = @_; $o->{in}->suspend; + standalone::explanations("removed packages @l"); my $ret = system('rpm', '-e', @l) == 0; $o->{in}->resume; $ret; @@ -45,12 +47,140 @@ sub remove { sub remove_nodeps { my ($o, @l) = @_; $o->{in}->suspend; + standalone::explanations("removed (with --nodeps) packages @l"); my $ret = system('rpm', '-e', '--nodeps', @l) == 0; $o->{in}->resume; $ret; } ################################################################################ + package standalone; +#- stuff will go to special /var/log/explanations file +my $standalone_name; +sub explanations { c::syslog(c::LOG_INFO()|c::LOG_LOCAL1(), "@_") } + +@common_functs = qw(renamef linkf symlinkf output substInFile mkdir_p rm_rf cp_af touch setVarsInSh setVarsInCsh update_gnomekderc); +@builtin_functs = qw(chmod chown unlink link symlink rename system); +@drakx_modules = qw(Xconfig Xconfigurator Xconfigurator_consts any bootloader bootlook c class_discard commands crypto detect_devices devices diskdrake diskdrake_interactive fs fsedit http keyboard lang log loopback lvm modparm modules mouse my_gtk network partition_table partition_table_bsd partition_table_dos partition_table_empty partition_table_gpt partition_table_mac partition_table_raw partition_table_sun printer printerdrake proxy raid run_program scanner services steps swap timezone tinyfirewall); + + +sub import { + ($standalone_name = $0) =~ s|.*/||; + c::openlog("$standalone_name"."[$$]"); + explanations('### Program is starting ###'); + + eval "*MDK::Common::$_ = *$_" foreach @common_functs; + + foreach my $f (@builtin_functs) { + eval "*$_"."::$f = *$f" foreach @drakx_modules; + eval "*".caller()."::$f = *$f"; + } +} + + +sub renamef { + explanations "moved file $_[0] to $_[1]"; + goto &MDK::Common::File::renamef; +} + +sub linkf { + explanations "hard linked file $_[0] to $_[1]"; + goto &MDK::Common::File::linkf; +} + +sub symlinkf { + explanations "symlinked file $_[0] to $_[1]"; + goto &MDK::Common::File::symlinkf; +} + +sub output { + explanations "created file $_[0]"; + goto &MDK::Common::File::output; +} + +sub substInFile(&@) { + explanations "modified file $_[1]"; + goto &MDK::Common::File::substInFile; +} + +sub mkdir_p { + explanations "created directory $_[0] (and parents if necessary)"; + goto &MDK::Common::File::mkdir_p; +} + +sub rm_rf { + explanations "removed files/directories (recursively) @_"; + goto &MDK::Common::File::rm_rf; +} + +sub cp_af { + my $retval = MDK::Common::File::cp_af @_; + my $dest = pop @_; + explanations "copied recursively @_ to $dest"; + return $retval; +} + +sub touch { + explanations "touched file @_"; + goto &MDK::Common::File::touch; +} + +sub setVarsInSh { + explanations "modified file $_[0]"; + goto &MDK::Common::System::setVarsInSh; +} + +sub setVarsInCsh { + explanations "modified file $_[0]"; + goto &MDK::Common::System::setVarsInCsh; +} + +sub update_gnomekderc { + explanations "updated file $_[0]"; + goto &MDK::Common::System::update_gnomekderc; +} + + +sub chmod { + my $retval = CORE::chmod @_; + my $mode = shift @_; + explanations sprintf("changed mode of %s to %o", $_, $mode) foreach @_; + return $retval; +} + +sub chown { + my $retval = CORE::chown @_; + my $uid = shift @_; + my $gid = shift @_; + explanations sprintf("changed owner of $_ to $uid.$gid") foreach @_; + return $retval; +} + +sub unlink { + explanations "removed files/directories @_"; + CORE::unlink @_; +} + +sub link { + explanations "hard linked file $_[0] to $_[1]"; + CORE::link $_[0], $_[1]; +} + +sub symlink { + explanations "symlinked file $_[0] to $_[1]"; + CORE::symlink $_[0], $_[1]; +} + +sub rename { + explanations "renamed file $_[0] to $_[1]"; + CORE::rename $_[0], $_[1]; +} + +sub system { + explanations "launched command: @_"; + CORE::system @_; +} + 1; -- cgit v1.2.1