The following commit has been merged in the master branch: commit 17b854753ad135acff4a3f492c3d48910ab4dc11 Author: Guillem Jover <guil...@debian.org> Date: Wed Jun 20 04:20:26 2012 +0200
Dpkg::BuildEnv: New module to track build environment variables diff --git a/scripts/Dpkg/BuildEnv.pm b/scripts/Dpkg/BuildEnv.pm new file mode 100644 index 0000000..511ba24 --- /dev/null +++ b/scripts/Dpkg/BuildEnv.pm @@ -0,0 +1,105 @@ +# Copyright © 2012 Guillem Jover <guil...@debian.org> +# +# 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 <http://www.gnu.org/licenses/>. + +package Dpkg::BuildEnv; + +use strict; +use warnings; + +our $VERSION = "0.01"; + +my %env_modified = (); +my %env_accessed = (); + +=encoding utf8 + +=head1 NAME + +Dpkg::BuildEnv - track build environment + +=head1 DESCRIPTION + +The Dpkg::BuildEnv module is used by dpkg-buildflags to track the build +environment variables being used and modified. + +=head1 FUNCTIONS + +=over 4 + +=item $bf->set($varname, $value) + +Update the build environment variable $varname with value $value. Record +it as being accessed and modified. + +=cut + +sub set { + my ($varname, $value) = @_; + $env_modified{$varname} = 1; + $env_accessed{$varname} = 1; + $ENV{$varname} = $value; +} + +=item $bf->get($varname) + +Get the build environment variable $varname value. Record it as being +accessed. + +=cut + +sub get { + my ($varname) = @_; + $env_accessed{$varname} = 1; + return $ENV{$varname}; +} + +=item $bf->has($varname) + +Return a boolean indicating whether the environment variable exists. +Record it as being accessed. + +=cut + +sub has { + my ($varname) = @_; + $env_accessed{$varname} = 1; + return exists $ENV{$varname}; +} + +=item my @list = $bf->list_accessed() + +Returns a list of all environment variables that have been accessed. + +=cut + +sub list_accessed { + return sort keys %env_accessed; +} + +=item my @list = $bf->list_modified() + +Returns a list of all environment variables that have been modified. + +=cut + +sub list_modified { + return sort keys %env_modified; +} + +=back + +=cut + +1; diff --git a/scripts/Makefile.am b/scripts/Makefile.am index 142b1ca..3172097 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -55,6 +55,7 @@ CLEANFILES = \ perllibdir = $(PERL_LIBDIR) nobase_dist_perllib_DATA = \ Dpkg/Arch.pm \ + Dpkg/BuildEnv.pm \ Dpkg/BuildFlags.pm \ Dpkg/BuildOptions.pm \ Dpkg/Changelog.pm \ diff --git a/scripts/po/POTFILES.in b/scripts/po/POTFILES.in index fd33fd0..b00cb52 100644 --- a/scripts/po/POTFILES.in +++ b/scripts/po/POTFILES.in @@ -17,6 +17,7 @@ scripts/dpkg-shlibdeps.pl scripts/dpkg-source.pl scripts/changelog/debian.pl scripts/Dpkg/Arch.pm +scripts/Dpkg/BuildEnv.pm scripts/Dpkg/BuildFlags.pm scripts/Dpkg/BuildOptions.pm scripts/Dpkg/Compression.pm -- dpkg's main repository -- To UNSUBSCRIBE, email to debian-dpkg-cvs-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org