diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2017-01-07 18:45:59 +0000 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2017-01-08 22:14:48 +0000 |
commit | 76c7db35e2ddaa0c517128fae11cd5893099fffc (patch) | |
tree | d94875cbd4c35b0d9a5d8fadc0f6b848023a8016 | |
parent | 6df06968cbcb92d2dc9796a137d36cdc873b827a (diff) |
dgit: Enforce a syntax for nominal distros
These appear in various interchange output like tags. They should be
sane. They're going to appear in Dgit: too where people will need to
use them.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
-rw-r--r-- | Debian/Dgit.pm | 2 | ||||
-rwxr-xr-x | dgit | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm index 314bd8c..5a7b59d 100644 --- a/Debian/Dgit.pm +++ b/Debian/Dgit.pm @@ -50,6 +50,7 @@ BEGIN { git_get_ref git_for_each_ref git_for_each_tag_referring is_fast_fwd $package_re $component_re $deliberately_re + $distro_re $branchprefix initdebug enabledebug enabledebuglevel printdebug debugcmd @@ -65,6 +66,7 @@ our @EXPORT_OK; our $package_re = '[0-9a-z][-+.0-9a-z]*'; our $component_re = '[0-9a-zA-Z][-+.0-9a-zA-Z]*'; our $deliberately_re = "(?:TEST-)?$package_re"; +our $distro_re = $component_re; our $branchprefix = 'dgit'; # policy hook exit status bits @@ -727,7 +727,10 @@ sub access_basedistro () { sub access_nomdistro () { my $base = access_basedistro(); - return cfg("dgit-distro.$base.nominal-distro",'RETURN-UNDEF') // $base; + my $r = cfg("dgit-distro.$base.nominal-distro",'RETURN-UNDEF') // $base; + $r =~ m/^$distro_re$/ or badcfg + "bad syntax for (nominal) distro \`$r' (does not match /^$distro_re$/)"; + return $r; } sub access_quirk () { |