NAME¶
duck - the Debian Url ChecKer
SYNOPSIS¶
duck [
OPTION ]... [
-f file] [
-u file] [
-c
file]
DESCRIPTION¶
duck extracts links, email address domains and VCS-* entries from the
following files:
- o
- debian/control
- o
- debian/upstream, debian/upstream-metadata.yaml and
debian/upstream/metadata
- o
- debian/copyright
- o
- DEP-3 patch files in every directory a series file is found
- o
- systemd.unit files (*.socket, *.device, *.mount,
*.automount, *.swap, *.target, *.path,
*.time, *.snapshot, *.slice, *.scope)
- o
- Appstream files (*.appdata)
It tries to access those VCS-* entries and URLs using the approriate tool to
find out whether the given URLs or entries are broken or working. If errors
are detected, the filename, fieldname and URL/email of the broken entry are
displayed.
duck will search for the default files (see above) and skip them
silently, if they cannot be found. If specific filenames for options
-c,
-f or
-u are given, and one of those files cannot be
found,
duck exits with exit code
2.
Email address domains are checked for existing
MX records,
A
records, or
AAAA records, in this order. If none of these 3 are found
for a given domain, it is considered broken.
Checks results are displayed with 3 different error levels
- O:
- (OK) Indicates that the given check did not result in an error. Only shown
if -n is used.
- I:
- (Information) Indicates informational warnings, suchs as missing helper
tools as well as failing checks based on searches in unstructured text
files, which sometimes lead to false positives.
- E:
- (Error) Indicates failing checks based on data from well-defined fields
(e.g. Homepage: entry in debian/control).
and 3 different certainty-levels
- certain
- Data taken from well defined fields. As the format of this field is
specified (e.g. Debian Policy, etc.), it can be checked by the appropriate
tools. If this check then fails, the data in the field is certainly
erroneous.
- possible
- Data extracted using regular expressions (e.g. email addresses, URLs).
This might lead to false positives, so the check result is possibly a
false positive.
- wild-guess
- Data extracted from websites, by using regular expressions. This is still
experimental and probably buggy, hence the "wild-guess".
OPTIONS¶
- -v
- verbose mode. This shows all URLs found and the checks run.
- -q
- quiet mode. Suppress all output.
- -n
- dry run. Don't run any checks, just show entries to be checked.
- --modules-dir=DIRECTORY
- specify modules directory. Mostly useful for developing new checks. If
this parameter is specified, only modules defined in this directory are
used. You have to copy all *.pm files from
/usr/share/duck/lib/checks to the directory specified.
- --no-color
- do not colorize output. See also the DUCK_NOCOLOR environment
variable.
- --no-https
- do not try to find matching https URLs to http URLs. See also the
DUCK_NOHTTPS environment variable.
- --missing-helpers
- display list of missing external helper tools and exits.
- --version
- display copyright and version information
- -f
- specify path to control file. This overrides the default
debian/control.
- -F
- skip processing of the control file.
- -u
- specify path to upstream metadata file. This overrides the default files
debian/upstream, debian/upstream-metadata.yaml and
debian/upstream/metadata.
- -U
- skip processing of the upstream metadata file.
- -c
- specify path to copyright file. This overrides the default
debian/copyright.
- -C
- skip processing of copyright file.
- -P
- skip processing of patch files.
- -A
- skip processing of appstream metadata files.
- -S
- skip processing of systemd.unit files.
ENVIRONMENT VARIABLES¶
- DUCK_NOCOLOR
- If this variable is set, do not colorize output.
- DUCK_NOHTTPS
- If this variable is set, do not try to find matching https URLs to http
URLs.
CHECK MODULES¶
EXAMPLE¶
To run duck, change your working directory to an extracted debian source package
and run:
duck
EXIT STATUS¶
- 0
- Success, no errors
- 1
- Error(s) detected
- 2
- User-specified file not found
SEE ALSO¶
Please see
http://duck.debian.net/ for additional information as well as
an overview of duck checks run on all source packages in
Debian/unstable.