From 8e79ad9f544d1c4a0476e0d96aef0496ca7fc741 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 14 Apr 2024 15:46:56 +0200 Subject: Adding upstream version 0.85.6. Signed-off-by: Daniel Baumann --- lib/Sbuild/ChrootInfoUnshare.pm | 94 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 lib/Sbuild/ChrootInfoUnshare.pm (limited to 'lib/Sbuild/ChrootInfoUnshare.pm') diff --git a/lib/Sbuild/ChrootInfoUnshare.pm b/lib/Sbuild/ChrootInfoUnshare.pm new file mode 100644 index 0000000..adb1a9a --- /dev/null +++ b/lib/Sbuild/ChrootInfoUnshare.pm @@ -0,0 +1,94 @@ +# +# ChrootInfoUnshare.pm: chroot utility library for sbuild +# Copyright © 2018 Johannes Schauer Marin Rodrigues +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see +# . +# +####################################################################### + +package Sbuild::ChrootInfoUnshare; + +use Sbuild::ChrootInfo; +use Sbuild::ChrootUnshare; + +use strict; +use warnings; + +BEGIN { + use Exporter (); + our (@ISA, @EXPORT); + + @ISA = qw(Exporter Sbuild::ChrootInfo); + + @EXPORT = qw(); +} + +sub new { + my $class = shift; + my $conf = shift; + + my $self = $class->SUPER::new($conf); + bless($self, $class); + + return $self; +} + +sub get_info_all { + my $self = shift; + + my $chroots = {}; + + my $xdg_cache_home = $self->get_conf('HOME') . "/.cache/sbuild"; + if (defined($ENV{'XDG_CACHE_HOME'})) { + $xdg_cache_home = $ENV{'XDG_CACHE_HOME'} . '/sbuild'; + } + + my $num_found = 0; + if (opendir my $dh, $xdg_cache_home) { + while (defined(my $file = readdir $dh)) { + next if $file eq '.' || $file eq '..'; + next if $file !~ /^[^-]+-[^-]+(-[^-]+)?(-sbuild)?\.t.+$/; + my $isdir = -d "$xdg_cache_home/$file"; + $file =~ s/\.t.+$//; # chop off extension + if (! $isdir) { + $chroots->{'chroot'}->{$file} = 1; + } + $chroots->{'source'}->{$file} = 1; + $num_found += 1; + } + closedir $dh; + } + + if ($num_found == 0) { + print STDERR "I: No tarballs found in $xdg_cache_home\n"; + } + + $self->set('Chroots', $chroots); +} + +sub _create { + my $self = shift; + my $chroot_id = shift; + + my $chroot = undef; + + if (defined($chroot_id)) { + $chroot = Sbuild::ChrootUnshare->new($self->get('Config'), $chroot_id); + } + + return $chroot; +} + +1; -- cgit v1.2.3