diff options
author | Pascal Rigaux <pixel@mandriva.com> | 2007-05-21 16:55:47 +0000 |
---|---|---|
committer | Pascal Rigaux <pixel@mandriva.com> | 2007-05-21 16:55:47 +0000 |
commit | 067be74ea0e105a6be785779edc7b275977e9d60 (patch) | |
tree | 95dfe251a2014ee4b908e6fe5d15832348b20bd2 /urpm/util.pm | |
parent | b5a3719a93a7ed0531414e342d5e6fd5aed9711e (diff) | |
download | urpmi-067be74ea0e105a6be785779edc7b275977e9d60.tar urpmi-067be74ea0e105a6be785779edc7b275977e9d60.tar.gz urpmi-067be74ea0e105a6be785779edc7b275977e9d60.tar.bz2 urpmi-067be74ea0e105a6be785779edc7b275977e9d60.tar.xz urpmi-067be74ea0e105a6be785779edc7b275977e9d60.zip |
- urpmi.addmedia
o don't overwrite existing urpmi.cfg with an empty file
when disk is full (#30945)
Diffstat (limited to 'urpm/util.pm')
-rw-r--r-- | urpm/util.pm | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/urpm/util.pm b/urpm/util.pm index e6e91dca..47a89f08 100644 --- a/urpm/util.pm +++ b/urpm/util.pm @@ -12,7 +12,7 @@ our @EXPORT = qw(quotespace unquotespace copy_and_own same_size_and_mtime partition uniq - difference2 member file_size cat_ cat_utf8 dirname basename + difference2 member file_size cat_ cat_utf8 output_safe dirname basename ); (our $VERSION) = q($Revision$) =~ /(\d+)/; @@ -131,6 +131,18 @@ sub member { my $e = shift; foreach (@_) { $e eq $_ and return 1 } 0 } sub cat_ { my @l = map { my $F; open($F, '<', $_) ? <$F> : () } @_; wantarray() ? @l : join '', @l } sub cat_utf8 { my @l = map { my $F; open($F, '<:utf8', $_) ? <$F> : () } @_; wantarray() ? @l : join '', @l } +sub output_safe { + my ($file, $content) = @_; + + open(my $f, '>', "$file.new") or return; + print $f $content or return; + close $f or return; + + warn "$file\n"; + rename("$file.new", $file) or return; + 1; +} + 1; __END__ |