From e0ada251ac68dc91192c7ec7d10f3a1d7784916a Mon Sep 17 00:00:00 2001 From: Mageia SVN-Git Migration Date: Sat, 14 May 2011 01:22:07 +0100 Subject: Synthesized commit during git-svn import combining previous Mandriva history with Mageia. This commit consitsts of the following subversion commits: ------------------------------------------------------------------------ r1310 | dmorgan | 2011-05-14 01:22:07 +0100 (Sat, 14 May 2011) | 1 line Import cleaned mgaonline ------------------------------------------------------------------------ --- mgaapplet_urpm.pm | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 mgaapplet_urpm.pm (limited to 'mgaapplet_urpm.pm') diff --git a/mgaapplet_urpm.pm b/mgaapplet_urpm.pm new file mode 100644 index 00000000..304f3352 --- /dev/null +++ b/mgaapplet_urpm.pm @@ -0,0 +1,55 @@ +package mgaapplet_urpm; + +# taken from urpmi: + +use MDK::Common; +use urpm::download; + +sub userdir_prefix { + my ($_urpm) = @_; + '/tmp/.urpmi-'; +} +sub userdir { + my ($urpm) = @_; + $< or return; + + my $dir = ($urpm->{urpmi_root} || '') . userdir_prefix($urpm) . $<; + mkdir $dir, 0755; # try to create it + + -d $dir && ! -l $dir or $urpm->{fatal}(1, sprintf("fail to create directory %s", $dir)); + -o $dir && -w $dir or $urpm->{fatal}(1, sprintf("invalid owner for directory %s", $dir)); + + mkdir "$dir/partial"; + mkdir "$dir/rpms"; + + $dir; +} +sub ensure_valid_cachedir { + my ($urpm) = @_; + if (my $dir = userdir($urpm)) { + $urpm->{cachedir} = $dir; + } + -w "$urpm->{cachedir}/partial" or $urpm->{fatal}(1, "Can not download packages into %s", "$urpm->{cachedir}/partial"); +} +sub valid_cachedir { + my ($urpm) = @_; + userdir($urpm) || $urpm->{cachedir}; +} + +sub get_content { + my ($urpm, $url) = @_; + + my $download_dir = valid_cachedir($urpm) . '/partial/'; + my $file = $download_dir . basename($url); + + unlink $file; # prevent "partial file" errors + eval { urpm::download::sync($urpm, undef, [ $url ], quiet => 1, dir => $download_dir) }; + #sync_url($urpm, $url, dir => $download_dir, quiet => 1) or return; + + my @l = cat_($file); + unlink $file; + + wantarray() ? @l : join('', @l); +} + +1; -- cgit v1.2.1