X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fregexes.py;h=15b79a6368170e988b7fa8428f917359b4395907;hb=4d8b174b33c1816762251a27dc9325138c8d8f6b;hp=edf9566538003edbe08d3347aef53eba434fcf93;hpb=bcf32a5ccbf5dd045fd39b8d76a38934739c4780;p=dak.git diff --git a/daklib/regexes.py b/daklib/regexes.py index edf95665..15b79a63 100755 --- a/daklib/regexes.py +++ b/daklib/regexes.py @@ -128,3 +128,52 @@ re_match_expired = re.compile(r"^The key used to sign .+ has expired on .+$") # in generate-releases re_gensubrelease = re.compile (r".*/(binary-[0-9a-z-]+|source)$") re_includeinrelease = re.compile (r"(Translation-[a-zA-Z_]+\.(?:bz2|xz)|Contents-[0-9a-z-]+.gz|Index|Packages(.gz|.bz2)?|Sources(.gz|.bz2)?|MD5SUMS|SHA256SUMS|Release)$") + +# in generate_index_diffs +re_includeinpdiff = re.compile(r"(Translation-[a-zA-Z_]+\.(?:bz2|xz))") + + +###################################################################### +# Patterns matching filenames # +###################################################################### + +# Match safe filenames +re_file_safe = re.compile(r'^[a-zA-Z0-9][a-zA-Z0-9_.:~+-]*$') + +# Prefix of binary and source filenames +_re_file_prefix = '^(?P[a-z0-9][a-z0-9.+-]+)_(?P[A-Za-z0-9.:~+-]+)' + +# Match binary packages +# Groups: package, version, architecture, type +re_file_binary = re.compile(_re_file_prefix + '_(?P[a-z0-9]+)\.(?Pu?deb)$') + +# Match dsc files +# Groups: package, version +re_file_dsc = re.compile(_re_file_prefix + r'\.dsc$') + +# Match other source files +# Groups: package, version +re_file_source = re.compile(_re_file_prefix + r'(?:(?:\.orig(?:-[a-zA-Z0-9-]+)?)?\.tar\.(?:bz2|gz|xz)|\.diff\.gz)$') + +# Match upstream tarball +# Groups: package, version +re_file_orig = re.compile(_re_file_prefix + r'\.orig(?:-[a-zA-Z0-9-]+)?\.tar\.(?:bz2|gz|xz)') + +###################################################################### +# Patterns matching fields # +###################################################################### + +# Match package name +re_field_package = re.compile(r'^[a-z0-9][a-z0-9.+-]+$') + +# Match version +# Groups: without-epoch +re_field_version = re.compile(r'^(?:[0-9]+:)?(?P[A-Za-z0-9.:~+-]+)$') + +# Extract upstream version +# Groups: upstream +re_field_version_upstream = re.compile(r'^(?:[0-9]+:)?(?P.*)-[^-]*$') + +# Match source field +# Groups: package, version +re_field_source = re.compile(r'^(?P[a-z0-9][a-z0-9.+-]+)(:?\s*\((?P[A-Za-z0-9.:~+-])\))?')