Package: devscripts
Version: 2.13.2
Severity: wishlist
File: /usr/bin/dch
Tags: patch

        Hi there!

It would be nice if dch configs could be overriden from the environment
as per attached patch.  This would likely be useful in more than my
specfic use case, but here's why I'd like this feature: I work on
Debian, Linaro and Ubuntu packages with Debian, Ubuntu, Linaro and other
hats and from various environments.  I have my shell config to set my
git/bzr/dch name and email address as follow:
    alias debian='EMAIL="lool-nospam-debian.org" BZR_EMAIL="Loïc Minier 
<$EMAIL>"'
    alias linaro='EMAIL="loic.minier-nospam-linaro.org" BZR_EMAIL="Loïc Minier 
<$EMAIL>"'
    alias ubuntu='EMAIL="loic.minier-nospam-ubuntu.com" BZR_EMAIL="Loïc Minier 
<$EMAIL>"'
    export NAME="Loïc Minier"
    export EMAIL="lool-nospam-dooz.org"

(inserted nospam in place of @)

This alllows me to work with my Debian hat by prefixing commands with
debian:
    debian dch -a
    debian debcommit

or to switch my shell config to my Linaro hat with:
    linaro
    dch -a
    debcommit
etc.

I'd like to do the same with the DEBCHANGE_VENDOR which is used for
version number heuristics, but currently devscripts only read from
command-line or config files; hence the attached patch to read from the
environment.

    Cheers,
-- 
Loïc Minier
>From 87df467c805c156486e69a4e94e2fc35f3161245 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lo=C3=AFc=20Minier?= <loic.min...@ubuntu.com>
Date: Thu, 6 Jun 2013 16:06:09 +0200
Subject: [PATCH] debchange: Allow config overrides in environment

---
 scripts/debchange.pl | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/scripts/debchange.pl b/scripts/debchange.pl
index 98acd63..684e5b8 100755
--- a/scripts/debchange.pl
+++ b/scripts/debchange.pl
@@ -314,6 +314,11 @@ if (@ARGV and $ARGV[0] =~ /^--no-?conf$/) {
     my $shell_out = `/bin/bash -c '$shell_cmd'`;
     @config_vars{keys %config_vars} = split /\n/, $shell_out, -1;
 
+    # Allow overrides in the environment
+    foreach my $var (keys %config_vars) {
+        $config_vars{$var} = $ENV{$var} if $ENV{$var};
+    }
+
     # Check validity
     $config_vars{'DEBCHANGE_PRESERVE'} =~ /^(yes|no)$/
 	or $config_vars{'DEBCHANGE_PRESERVE'}='no';
-- 
1.8.3

Reply via email to