Skip to content

Commit

Permalink
Manpages+markdown-checker: Permit only specific missing files
Browse files Browse the repository at this point in the history
I can't write these manpages ad-hoc, and in most cases I don't want to
remove the link because it is justified. The hope is that with this
FIXME in place, there is more motivation to write these manpages for
someone who knows enough about them. Or at least we will introduce fewer
dead links in the future, making Help more useful.
  • Loading branch information
BenWiederhake authored and bgianfo committed Oct 10, 2021
1 parent 3a9f289 commit 8ff942b
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 3 deletions.
26 changes: 26 additions & 0 deletions Base/usr/share/man/man1/ps.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
## Name

ps - list currently running processes

## Synopsis

```**sh
$ ps [--version] [-e] [-f] [-q pid-list]
```

## Description

Print a list of currently running processes in the current TTY.
For each process, print its PID (process ID), to which TTY it belongs, and invoking commandline (CMD).

## Options

* `-e`: Consider all processes, not just those in the current TTY.
* `-f`: Also print for each process: UID (as resolved username), PPID (parent PID), and STATE (Runnable, Sleeping, Selecting, Reading, etc.)
* `-q pid-list`: Only consider the given PIDs, if they exist.

## Examples

```sh
$ ps -ef
```
2 changes: 0 additions & 2 deletions Base/usr/share/man/man1/tar.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,4 @@ $ tar -x -f archive.tar

## See also

* [`gunzip`(1)](gunzip.md)
* [`unzip`(1)](unzip.md)

27 changes: 26 additions & 1 deletion Userland/Utilities/markdown-check.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,31 @@
#include <LibMarkdown/Document.h>
#include <LibMarkdown/Visitor.h>

static bool is_missing_file_acceptable(String const& filename)
{
const StringView acceptable_missing_files[] = {
// FIXME: Please write these manpages!
"/usr/share/man/man2/accept.md",
"/usr/share/man/man2/exec.md",
"/usr/share/man/man2/fcntl.md",
"/usr/share/man/man2/fork.md",
"/usr/share/man/man2/ioctl.md",
"/usr/share/man/man2/listen.md",
"/usr/share/man/man2/mmap.md",
"/usr/share/man/man2/mprotect.md",
"/usr/share/man/man2/open.md",
"/usr/share/man/man2/ptrace.md",
"/usr/share/man/man5/perfcore.md",
// This one is okay:
"/home/anon/js-tests/test-common.js",
};
for (auto const& suffix : acceptable_missing_files) {
if (filename.ends_with(suffix))
return true;
}
return false;
}

struct FileLink {
String file_path; // May be empty, but not null
String anchor; // May be null ("foo.md", "bar.png"), may be empty ("baz.md#")
Expand Down Expand Up @@ -195,7 +220,7 @@ int main(int argc, char** argv)
} else {
pointee_file = LexicalPath::absolute_path(file_dir, file_link.file_path);
}
if (!Core::File::exists(pointee_file)) {
if (!Core::File::exists(pointee_file) && !is_missing_file_acceptable(pointee_file)) {
outln("File '{}' points to '{}' (label '{}'), but '{}' does not exist!",
file_item.key, file_link.file_path, file_link.label, pointee_file);
any_problems = true;
Expand Down

0 comments on commit 8ff942b

Please sign in to comment.