1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
<?php
require 'common.php';
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Manup               Lonely MAN near You</title>
<link rel="icon" type="image/png" sizes="128x128" href="imgs/logo-goog.png"/>
<link rel="icon" type="image/png" sizes="32x32" href="imgs/logo-goog32.png"/>
<link rel="icon" type="image/png" sizes="16x16" href="imgs/logo-goog16.png"/>
<!--<link rel="icon" type="image/x-icon" sizes="16x16" href="imgs/logo-goog16.ico"/>-->
<link rel="stylesheet" href="style/normalize.css"/>
<link rel="stylesheet" href="style/main.css"/>
<link rel="stylesheet" href="style/search.css"/>
<link rel="stylesheet" href="style/man.css"/>
</head>
<body>
<div id="main">
<header>
<a id="logo" href="/">
<h1>
<span id="logo-let">L</span>
<span id="logo-me">m</span>
<code id="logo-man">m</code>
<span id="logo-that">t</span>
<span id="logo-for">F</span>
<span id="logo-you">y</span>
</h1>
<div id="logo-ver_wrap">
<span id="logo-ver">BETA!</span>
</div>
</a>
<nav id="search_pane">
<form>
<div id="query_wrap">
<input id="query" type='searcg' value='<?=$query;?>' name='query' required/>
<button id="def" type='submit' value='man' name='action' class="btn-def" aria-hidden="true" tabindex="-1"></button>
<button id="mank" type='submit' value='apropos' name='action' title="apropos(1)">-k</button>
<button id="man" type='submit' value='man' name='action' title="Feeling lucky, punk?" class="btn-acc">
<div id="query_icon"></div>
</button>
</div>
</form>
</nav>
<nav id="topnav">
<a href="https://cabin.digital">Cabin</a>
<a href="#"><span id="topnav_icon"></span></a>
<button class="btn-acc">Man up</button>
</nav>
</header>
<section id="results">
<?php
$found_man = false;
if($action === "man")
{
$arg_section = "";
if(!empty($section))
$arg_section = "-s ". escapeshellarg($section);
$res = exec("man -M $manpath -T html -O fragment $arg_section "
. escapeshellarg($query), $lines, $ret);
if($ret === 0)
{
$url = "$root/?query=". urlencode($query) ."&section=1&action=lmmtfy";
echo "<nav id='lmmtfy'><div><div>";
echo " <label for='lmmtfy_url'>LmmtFy URL</label></div>";
echo " <textarea id='lmmtfy_url' wrap='off' rows='1' readonly>".$url."</textarea>";
echo " <button id='lmmtfy_copy' class='jsonly'>Copy</button></div><nav>";
echo "<article class='manpage'>". implode(PHP_EOL, $lines) ."</article>";
echo "<script src='/js/copy.js'></script>";
$found_man = true;
}
}
if(($action === "apropos") || !$found_man)
{
$res = exec("man -M $manpath -k " . escapeshellarg($query), $lines, $ret);
if($ret === 0)
{
$n = count($lines);
$s = $n > 1 ? "s" : "";
echo "<p class='hint'> Found $n result$s</p>";
foreach($lines as $line)
{
$split = explode(") - ", $line);
$full = $split[0];
$desc = $split[1];
$split = explode("(", $full);
$name = explode(",", $split[0])[0];
$sect = strtolower(explode(",", $split[1])[0]);
$url = "$root/search.php?query=". urlencode($name) ."§ion=". urlencode($sect)
."&action=man";
echo '<dl>';
echo " <dt><a href='".$url."'>$full)</a></dt>";
echo " <dd>$desc</dd>";
echo '</dl>';
}
}
else echo "<p class='hint'> No results.</p>";
}
?>
</section>
<footer>
<p class="center">
Copyleft <span class="copyleft">©</span> 2024
<a href="mailto:manup@cabin.digital">dweller</a> from
<a href="https://cabin.digital">cabin.digital</a>.
All Wrongs Reserved.
</p>
</footer>
</div>
</body>
</html>
|