{
    "content": [
        {
            "type": "text",
            "text": "# duck(1) (man)\n\n**Summary:** duck - the Debian Url ChecKer\n\n**Synopsis:** duck  [ OPTION ]... [-f file] [-u file] [-c file] [URL]\n\n## Flags\n\n| Flag | Long | Arg | Description |\n|------|------|-----|-------------|\n| -n | — | — |  |\n| -q | — | — |  |\n| -v | — | — | --modules-dir=DIRECTORY specify modules directory. Mostly useful for developing new checks. If this parameter is specifi |\n| — | --no-check-certificate | — | do not check if SSL certificates autenticity. This is highly discouraged! |\n| — | --missing-helpers | — | display list of missing external helper tools and exits. --version display copyright and version information |\n| -f | — | — |  |\n| -F | — | — |  |\n| -u | — | — | bian/upstream, debian/upstream-metadata.yaml and debian/upstream/metadata. |\n| -U | — | — |  |\n| -c | — | — |  |\n| -C | — | — |  |\n| -P | — | — |  |\n| -A | — | — |  |\n| -S | — | — |  |\n| -l | — | — | fied. Specify one entry per line. This also disables all other check modules searching for entries in various files. |\n| — | --disable-urlfix | <fix1,...> | disables the specified url fix(es). An urlfix tries to remove leading/trailing characters from extracted URLs, like trai |\n| — | --enable-urlfix | <fix1,...> | enables the specified url fix(es). Using this parameter disabled all urlfixes minus the specified ones. The following ur |\n| — | --tasks | [number | Specify the number of checks allowed to run in parallel. Default value is 24. This value must be an integer value >0. Al |\n\n## Examples\n\n- `To run duck, change your working directory to an extracted Debian source package and run:`\n\n## Section Outline\n\n- **NAME** (2 lines)\n- **SYNOPSIS** (2 lines)\n- **DESCRIPTION** (45 lines) — 3 subsections\n  - certain (4 lines)\n  - possible (3 lines)\n  - wild-guess (3 lines)\n- **OPTIONS** (1 lines) — 18 subsections\n  - -n (1 lines)\n  - -q (1 lines)\n  - -v (27 lines)\n  - --no-check-certificate (2 lines)\n  - --missing-helpers (4 lines)\n  - -f (1 lines)\n  - -F (1 lines)\n  - -u (2 lines)\n  - -U (1 lines)\n  - -c (1 lines)\n  - -C (1 lines)\n  - -P (1 lines)\n  - -A (1 lines)\n  - -S (1 lines)\n  - -l (4 lines)\n  - --disable-urlfix=<fix1,...> (5 lines)\n  - --enable-urlfix=<fix1,...> (28 lines)\n  - --tasks=[number] (10 lines)\n- **ENVIRONMENT VARIABLES** (15 lines)\n- **EXAMPLE** (1 lines) — 1 subsections\n  - duck (1 lines)\n- **EXIT STATUS** (7 lines)\n- **FILES** (23 lines)\n- **SEE ALSO** (6 lines)\n\n## Full Content\n\n### NAME\n\nduck - the Debian Url ChecKer\n\n### SYNOPSIS\n\nduck  [ OPTION ]... [-f file] [-u file] [-c file] [URL]\n\n### DESCRIPTION\n\nduck extracts links, email address domains and VCS-* entries from the following files:\n\no      debian/control\n\no      debian/upstream, debian/upstream-metadata.yaml and debian/upstream/metadata\n\no      debian/copyright\n\no      DEP-3 patch files in every directory a series file is found\n\no      systemd.unit  files  (*.socket,  *.device,  *.mount,  *.automount,  *.swap,  *.target,\n*.path, *.time, *.snapshot, *.slice, *.scope)\n\no      Appstream files (*.appdata)\n\nIf an URL is supplied, duck uses dget to download the specified URL and processes  the  down‐\nloaded source package (*.dsc file) instead of working on the current directory.\n\nIt  tries  to  access  those  VCS-*  entries  and URLs using the appropriate tool to find out\nwhether the given URLs or entries are broken or working. If errors are  detected,  the  file‐\nname, fieldname and URL/email of the broken entry are displayed.\n\nduck  will search for the default files (see above) and skip them silently, if they cannot be\nfound.  If specific filenames for options -c, -f or -u are given, and one of those files can‐\nnot be found, duck exits with exit code 2.\n\nEmail  address  domains  are  checked for existing MX records, A records, or AAAA records, in\nthis order. If none of these 3 are found for a given domain, it is considered broken.\n\nChecks results are displayed with 3 different error levels\n\n\nO:     (OK) Indicates that the given check did not result in an error. Only shown  if  -n  is\nused.\n\nI:     (Information)  Indicates informational warnings, suchs as missing helper tools as well\nas failing checks based on searches in unstructured text files, which  sometimes  lead\nto false positives.\n\nE:     (Error)  Indicates  failing  checks based on data from well-defined fields (e.g. Home‐\npage: entry in debian/control).\n\nand 3 different certainty-levels\n\n#### certain\n\nData taken from well defined fields. As the format of this field  is  specified  (e.g.\nDebian  Policy,  etc.), it can be checked by the appropriate tools. If this check then\nfails, the data in the field is certainly erroneous.\n\n#### possible\n\nData extracted using regular expressions (e.g. email addresses, URLs). This might lead\nto false positives, so the check result is possibly a false positive.\n\n#### wild-guess\n\nData extracted from websites, by using regular expressions. This is still experimental\nand probably buggy, hence the \"wild-guess\".\n\n### OPTIONS\n\n#### -n\n\n#### -q\n\n#### -v\n\n--modules-dir=DIRECTORY\nspecify modules directory. Mostly useful for developing new checks. If this  parameter\nis  specified,  only  modules defined in this directory are used. You have to copy all\n*.pm files from /usr/share/duck/lib/checks to the directory specified.\n\n--color=[WHEN]\nSpecify when to emit escape sequences to the output. Available options are:\n\nauto Emit color escape codes on STDOUT/STDERR, no color if output is piped  to\na file or the current terminal is not capable of displaying colors.\n\n\n\n\nalways Always emit color escape codes.\n\n\n\n\nnever Never emit color escape codes.\n\n\n\n\n--no-https     do not try to find matching https URLs to http URLs. See also the DUCKNOHTTPS\nenvironment variable.\n\n#### --no-check-certificate\n\ndo not check if SSL certificates autenticity. This is highly discouraged!\n\n#### --missing-helpers\n\ndisplay list of missing external helper tools and exits.\n\n--version      display copyright and version information\n\n#### -f\n\n#### -F\n\n#### -u\n\nbian/upstream, debian/upstream-metadata.yaml and debian/upstream/metadata.\n\n#### -U\n\n#### -c\n\n#### -C\n\n#### -P\n\n#### -A\n\n#### -S\n\n#### -l\n\nfied. Specify one entry per line. This also disables all other  check  modules\nsearching for entries in various files.\n\n#### --disable-urlfix=<fix1,...>\n\ndisables the specified url fix(es). An urlfix tries to remove leading/trailing\ncharacters from extracted URLs, like trailing dots or parentheses. Using  this\nparameter enables all urlfixes minus the specified ones.\n\n#### --enable-urlfix=<fix1,...>\n\nenables  the specified url fix(es). Using this parameter disabled all urlfixes\nminus the specified ones.\n\n\nThe following urlfixes are available:\n\nTRAILINGCOLON Removes trailing colon \":\" character.\n\n\n\nTRAILINGPARENDOT Removes the string \").\" from the end of the URL.\n\n\nTRAILINGPUNCTUATION Removes trailing \".\" and \",\" characters.\n\n\nTRAILINGQUOTES Removes trailing single quotes \"'\"  characters.  Note:  Double\nquotes (\") are already correctly handled by the used perl regex matchers.\n\n\nTRAILINGSLASHDOT  Removes  the string \"/.\" (without the quotes) from the end\nof the URL.\n\n\nTRAILINGSLASHPAREN Removes the string \"/)\" (without the quotes) from the end\nof the URL.\n\n#### --tasks=[number]\n\nSpecify  the number of checks allowed to run in parallel. Default value is 24.\nThis value must be an integer value >0.\n\n\nAll urlfixes are enabled by default.\n\n### ENVIRONMENT VARIABLES\n\nDUCKNOHTTPS\nIf this variable is set, do not try to find matching https URLs to http URLs.\n\nXDGCONFIGHOME\nif this variable is set, use the config file (if  any)  $XDGHOME/duck/duck.conf.  The\ndefault value is $HOME/.config/duck/duck.conf .\n\nXDGCONFIGDIRS\ndefines  the  preference-ordered  set  of base directories to search for configuration\nfiles in addition to the XDGCONFIGHOME base directory. The directories  in  XDGCON‐‐\nFIGDIRS should be separated with a colon ':'.\n\n### EXAMPLE\n\nTo run duck, change your working directory to an extracted Debian source package and run:\n\n#### duck\n\n### EXIT STATUS\n\n0      Success, no errors\n\n1      Error(s) detected\n\n2      User-specified file not found\n\n### FILES\n\ndebian/duck-overrides\nOverrides-file  in  the  Debian package source tree. This files contains a list of URL\nregexs which should not be reported as down/broken. This might  be  useful  in  cases,\nwhere  URLs  are  extracted  from  old/outdated copyright-files or patches, which will\nnever ever be working, and which will then lead to false positives. Please see an  ex‐\nample in /usr/share/doc/duck/examples.\n\nduck.conf\nConfig  file  which  contains  the  regular expressions used to detect parked domains,\nredirected websites and The default file is in /etc/duck/duck.conf. duck  also  honors\nthe  XDG  Base  Directory Specification, see the section ENVIRONMENT VARIABLES for de‐\ntails.  Search order for duck.conf is:\n\n$XDGCONFIGHOME/duck/duck.conf (default: $HOME/.config/duck/duck.conf)\n\n/etc/duck/duck.conf\n\n/$XDGCONFIGDIRS (default: /etc/xdg/duck/duck.conf)\n\nPlease see the  XDG  Base  Directory  Specification  (https://specifications.freedesk‐\ntop.org/basedir-spec/basedir-spec-latest.html) for more details.\n\n### SEE ALSO\n\nPlease  see http://duck.debian.net/ for additional information as well as an overview of duck\nchecks run on all source packages in Debian/unstable.\n\n\n\n2017-08-10                                      DUCK(1)\n\n"
        }
    ],
    "structuredContent": {
        "command": "duck",
        "section": "1",
        "mode": "man",
        "summary": "duck - the Debian Url ChecKer",
        "synopsis": "duck  [ OPTION ]... [-f file] [-u file] [-c file] [URL]",
        "flags": [
            {
                "flag": "-n",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-q",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-v",
                "long": null,
                "arg": null,
                "description": "--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. --color=[WHEN] Specify when to emit escape sequences to the output. Available options are: auto Emit color escape codes on STDOUT/STDERR, no color if output is piped to a file or the current terminal is not capable of displaying colors. always Always emit color escape codes. never Never emit color escape codes. --no-https do not try to find matching https URLs to http URLs. See also the DUCKNOHTTPS environment variable."
            },
            {
                "flag": "",
                "long": "--no-check-certificate",
                "arg": null,
                "description": "do not check if SSL certificates autenticity. This is highly discouraged!"
            },
            {
                "flag": "",
                "long": "--missing-helpers",
                "arg": null,
                "description": "display list of missing external helper tools and exits. --version display copyright and version information"
            },
            {
                "flag": "-f",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-F",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-u",
                "long": null,
                "arg": null,
                "description": "bian/upstream, debian/upstream-metadata.yaml and debian/upstream/metadata."
            },
            {
                "flag": "-U",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-c",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-C",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-P",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-A",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-S",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-l",
                "long": null,
                "arg": null,
                "description": "fied. Specify one entry per line. This also disables all other check modules searching for entries in various files."
            },
            {
                "flag": "",
                "long": "--disable-urlfix",
                "arg": "<fix1,...>",
                "description": "disables the specified url fix(es). An urlfix tries to remove leading/trailing characters from extracted URLs, like trailing dots or parentheses. Using this parameter enables all urlfixes minus the specified ones."
            },
            {
                "flag": "",
                "long": "--enable-urlfix",
                "arg": "<fix1,...>",
                "description": "enables the specified url fix(es). Using this parameter disabled all urlfixes minus the specified ones. The following urlfixes are available: TRAILINGCOLON Removes trailing colon \":\" character. TRAILINGPARENDOT Removes the string \").\" from the end of the URL. TRAILINGPUNCTUATION Removes trailing \".\" and \",\" characters. TRAILINGQUOTES Removes trailing single quotes \"'\" characters. Note: Double quotes (\") are already correctly handled by the used perl regex matchers. TRAILINGSLASHDOT Removes the string \"/.\" (without the quotes) from the end of the URL. TRAILINGSLASHPAREN Removes the string \"/)\" (without the quotes) from the end of the URL."
            },
            {
                "flag": "",
                "long": "--tasks",
                "arg": "[number",
                "description": "Specify the number of checks allowed to run in parallel. Default value is 24. This value must be an integer value >0. All urlfixes are enabled by default."
            }
        ],
        "examples": [
            "To run duck, change your working directory to an extracted Debian source package and run:"
        ],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 45,
                "subsections": [
                    {
                        "name": "certain",
                        "lines": 4
                    },
                    {
                        "name": "possible",
                        "lines": 3
                    },
                    {
                        "name": "wild-guess",
                        "lines": 3
                    }
                ]
            },
            {
                "name": "OPTIONS",
                "lines": 1,
                "subsections": [
                    {
                        "name": "-n",
                        "lines": 1,
                        "flag": "-n"
                    },
                    {
                        "name": "-q",
                        "lines": 1,
                        "flag": "-q"
                    },
                    {
                        "name": "-v",
                        "lines": 27,
                        "flag": "-v"
                    },
                    {
                        "name": "--no-check-certificate",
                        "lines": 2,
                        "long": "--no-check-certificate"
                    },
                    {
                        "name": "--missing-helpers",
                        "lines": 4,
                        "long": "--missing-helpers"
                    },
                    {
                        "name": "-f",
                        "lines": 1,
                        "flag": "-f"
                    },
                    {
                        "name": "-F",
                        "lines": 1,
                        "flag": "-F"
                    },
                    {
                        "name": "-u",
                        "lines": 2,
                        "flag": "-u"
                    },
                    {
                        "name": "-U",
                        "lines": 1,
                        "flag": "-U"
                    },
                    {
                        "name": "-c",
                        "lines": 1,
                        "flag": "-c"
                    },
                    {
                        "name": "-C",
                        "lines": 1,
                        "flag": "-C"
                    },
                    {
                        "name": "-P",
                        "lines": 1,
                        "flag": "-P"
                    },
                    {
                        "name": "-A",
                        "lines": 1,
                        "flag": "-A"
                    },
                    {
                        "name": "-S",
                        "lines": 1,
                        "flag": "-S"
                    },
                    {
                        "name": "-l",
                        "lines": 4,
                        "flag": "-l"
                    },
                    {
                        "name": "--disable-urlfix=<fix1,...>",
                        "lines": 5,
                        "long": "--disable-urlfix",
                        "arg": "<fix1,...>"
                    },
                    {
                        "name": "--enable-urlfix=<fix1,...>",
                        "lines": 28,
                        "long": "--enable-urlfix",
                        "arg": "<fix1,...>"
                    },
                    {
                        "name": "--tasks=[number]",
                        "lines": 10,
                        "long": "--tasks",
                        "arg": "[number]"
                    }
                ]
            },
            {
                "name": "ENVIRONMENT VARIABLES",
                "lines": 15,
                "subsections": []
            },
            {
                "name": "EXAMPLE",
                "lines": 1,
                "subsections": [
                    {
                        "name": "duck",
                        "lines": 1
                    }
                ]
            },
            {
                "name": "EXIT STATUS",
                "lines": 7,
                "subsections": []
            },
            {
                "name": "FILES",
                "lines": 23,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 6,
                "subsections": []
            }
        ]
    }
}