X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fregexes.py;h=a8107113ecd54257ec7a72f922fe8828d8e6f7a5;hb=0f78345ffd4d3fc772a590178ea9dea1113a7d41;hp=8c9a7fae72545e9159973c60a2962c9c08c8b8d3;hpb=603631668f779ca24d08b554f7053d46ba562348;p=dak.git diff --git a/daklib/regexes.py b/daklib/regexes.py old mode 100755 new mode 100644 index 8c9a7fae..a8107113 --- a/daklib/regexes.py +++ b/daklib/regexes.py @@ -131,3 +131,53 @@ re_includeinrelease = re.compile (r"(Translation-[a-zA-Z_]+\.(?:bz2|xz)|Contents # 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 = r'^(?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 + r'_(?P[a-z0-9-]+)\.(?Pu?deb)$') + +# Match changes files +# Groups: package, version, suffix +re_file_changes = re.compile(_re_file_prefix + r'_(?P[a-zA-Z0-9+-]+)\.changes$') + +# 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-]+)?|\.debian)?\.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.:~+-]+)\))?$')