Index: third_party/dpkg-dev/scripts/Dpkg/BuildEnv.pm |
diff --git a/third_party/dpkg-dev/scripts/Dpkg/BuildEnv.pm b/third_party/dpkg-dev/scripts/Dpkg/BuildEnv.pm |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2615d5d8e93401384757c820eec1c05c7b1e0f9e |
--- /dev/null |
+++ b/third_party/dpkg-dev/scripts/Dpkg/BuildEnv.pm |
@@ -0,0 +1,107 @@ |
+# Copyright © 2012 Guillem Jover <guillem@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 <https://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 { |
+ my @list = sort keys %env_accessed; |
+ return @list; |
+} |
+ |
+=item my @list = $bf->list_modified() |
+ |
+Returns a list of all environment variables that have been modified. |
+ |
+=cut |
+ |
+sub list_modified { |
+ my @list = sort keys %env_modified; |
+ return @list; |
+} |
+ |
+=back |
+ |
+=cut |
+ |
+1; |