From ea314d2f45c40a006c0104157013ab4b857f665f Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 15 Apr 2024 20:35:28 +0200 Subject: Adding upstream version 1.22.4. Signed-off-by: Daniel Baumann --- scripts/Dpkg/BuildTree.pm | 115 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 scripts/Dpkg/BuildTree.pm (limited to 'scripts/Dpkg/BuildTree.pm') diff --git a/scripts/Dpkg/BuildTree.pm b/scripts/Dpkg/BuildTree.pm new file mode 100644 index 0000000..7943eb4 --- /dev/null +++ b/scripts/Dpkg/BuildTree.pm @@ -0,0 +1,115 @@ +# Copyright © 2023 Guillem Jover +# +# 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 . + +=encoding utf8 + +=head1 NAME + +Dpkg::BuildTree - handle build tree actions + +=head1 DESCRIPTION + +The Dpkg::BuildTree module provides functions to handle build tree actions. + +B: This is a private module, its API can change at any time. + +=cut + +package Dpkg::BuildTree 0.01; + +use strict; +use warnings; + +use Cwd; + +use Dpkg::Source::Functions qw(erasedir); + +=head1 METHODS + +=over 4 + +=item $bt = Dpkg::BuildTree->new(%opts) + +Create a new Dpkg::BuildTree object. +Supported options are: + +=over 8 + +=item dir + +The build tree directory. +If not specified, it assumes the current working directory. + +=back + +=cut + +sub new { + my ($this, %opts) = @_; + my $class = ref($this) || $this; + + my $self = { + buildtree => $opts{dir} || getcwd(), + }; + bless $self, $class; + + return $self; +} + +=item $bt->clean() + +Clean the build tree, by removing any dpkg generated artifacts. + +=cut + +sub clean { + my $self = shift; + + my $buildtree = $self->{buildtree}; + + # If this does not look like a build tree, do nothing. + return unless -f "$buildtree/debian/control"; + + my @files = qw( + debian/files + debian/files.new + debian/substvars + debian/substvars.new + ); + my @dirs = qw( + debian/tmp + ); + + foreach my $file (@files) { + unlink "$buildtree/$file"; + } + foreach my $dir (@dirs) { + erasedir("$buildtree/$dir"); + } + + return; +} + +=back + +=head1 CHANGES + +=head2 Version 0.xx + +This is a private module. + +=cut + +1; -- cgit v1.2.3