Bug#863118: devscripts needs proper configuration file parsing

Osamu Aoki osamu at debian.org
Sun Jun 4 01:21:39 UTC 2017


Hi,

On Sat, Jun 03, 2017 at 01:45:36PM -0400, James McCoy wrote:
> On Sat, Jun 03, 2017 at 11:37:15PM +0900, Osamu Aoki wrote:
> > OK, here is my try to do the following.  Ugly, yes.  But it seems to
> > catch most errors in friendly way.
> > 
> >  * "egrep" test to catch space after "="
> >  * "set -e" to detect command not found; 
> >    * space before "="
> >    * "false" in line
> >  * "bash -n" test
> >  * Report the file name if a bug is found as much.
> > 
> > If no objection, I will apply this patch to git.  
> 
> The concept looks like a step in the right direction.  However, uscan.pl
> isn't the only script that does this type of config parsing.
> 
> Also, I would wait until after Stretch is released.

Certainly.

To be honest, I am not a fun of sourcing config file as BASH script.

Anyway here is a list of packages which needs attention:
$ fgrep ".devscripts'" *.pl
bts.pl:    my @config_files = ('/etc/devscripts.conf', '~/.devscripts');
dcontrol.pl:    my @config_files = ('/etc/devscripts.conf', '~/.devscripts');
debchange.pl:    my @config_files = ('/etc/devscripts.conf', '~/.devscripts');
debcheckout.pl:my @config_files = ('/etc/devscripts.conf', '~/.devscripts');
debcommit.pl:    my @config_files = ('/etc/devscripts.conf', '~/.devscripts');
debc.pl:    my @config_files = ('/etc/devscripts.conf', '~/.devscripts');
debdiff.pl:    my @config_files = ('/etc/devscripts.conf', '~/.devscripts');
debi.pl:    my @config_files = ('/etc/devscripts.conf', '~/.devscripts');
debsnap.pl:    my @config_files = ('/etc/devscripts.conf', '~/.devscripts');
debuild.pl:    my @config_files = ('/etc/devscripts.conf', '~/.devscripts');
dget.pl:    my @config_files = ('/etc/devscripts.conf', '~/.devscripts');
dpkg-depcheck.pl:    my @config_files = ('/etc/devscripts.conf', '~/.devscripts');
dscverify.pl:	my @config_files = ('/etc/devscripts.conf', '~/.devscripts');
grep-excuses.pl:    my @config_files = ('/etc/devscripts.conf', '~/.devscripts');
mass-bug.pl:    my @config_files = ('/etc/devscripts.conf', '~/.devscripts');
mk-build-deps.pl:my @config_files = ('/etc/devscripts.conf', '~/.devscripts');
plotchangelog.pl:    my @config_files = ('/etc/devscripts.conf', '~/.devscripts');
rmadison.pl:    my @config_files = ('/etc/devscripts.conf', '~/.devscripts');
uscan.pl:    my @config_files = ('/etc/devscripts.conf', '~/.devscripts');

$ fgrep .devscripts *.sh
debclean.sh:	for file in /etc/devscripts.conf ~/.devscripts
debrelease.sh:	for file in /etc/devscripts.conf ~/.devscripts
debrsign.sh:    for file in /etc/devscripts.conf ~/.devscripts; do
debsign.sh:	for file in /etc/devscripts.conf ~/.devscripts
nmudiff.sh:	for file in /etc/devscripts.conf ~/.devscripts
pts-subscribe.sh:	for file in /etc/devscripts.conf ~/.devscripts
uupdate.sh:	for file in /etc/devscripts.conf ~/.devscripts
who-uploads.sh:	for file in /etc/devscripts.conf ~/.devscripts
wnpp-alert.sh:OLDCACHEDIR=~/.devscripts_cache

28 scripts.

Questions are:

* Should we allow such bash config?
* Should we consolidate and factorize such scripts to be shared among
  all scripts to reduce maintenance burden?

Osamu



More information about the devscripts-devel mailing list