-
Notifications
You must be signed in to change notification settings - Fork 23
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
675e4a2
commit cdafa41
Showing
3 changed files
with
25 additions
and
16 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,24 +2,33 @@ | |
<meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><meta name=theme-color content="#ff89dd"><meta content="/Hilbish/hilbish-flower.png" property="og:image"><meta property="og:site_name" content="Hilbish"><meta content="Module commander — Hilbish" property="og:title"><meta content="library for custom commands" property="og:description"><meta content="library for custom commands" name=description><meta name=revisit-after content="2 days"><meta name=keywords content="Lua,Hilbish,Linux,Shell"><meta property="og:locale" content="en_GB"><link rel=canonical href=https://rosettea.github.io/Hilbish/><meta property="og:url" content="https://rosettea.github.io/Hilbish/"><link href=https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css rel=stylesheet integrity=sha384-0evHe/X+R7YkIZDRvuzKMRqM+OrBnVFBL6DOitfPri4tjfHxaWutUpFmBp4vmVor crossorigin=anonymous><script src=https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js integrity=sha384-pprn3073KE6tl6bjs2QrFaJGz5/SUsLqktiwsUTF55Jfv3qYSDhgCecCxMW52nD2 crossorigin=anonymous></script><link rel=stylesheet href=https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css integrity="sha512-KfkfwYDsLkIlwQp6LFnl8zNdLGxu9YAA1QvwINks4PhcElQSvqcyVLLD9aMhXd13uQjoXtEKNosOWaZqXgel0g==" crossorigin=anonymous referrerpolicy=no-referrer><link rel=stylesheet href=/Hilbish/versions/doc-improvements/css/syntax.min.eb77978873f3b324603120b558a36c98ad57d6ee7b77928e3bc131bd76c5935a.css integrity="sha256-63eXiHPzsyRgMSC1WKNsmK1X1u57d5KOO8ExvXbFk1o="></link><style>.heading>.heading-link{opacity:0}.heading:hover>.heading-link{visibility:visible;opacity:1;transition:all .1s ease-in}@keyframes highlight{0%{background:0 0}50%{background:#fff2cf}100%{background:0 0}}div:target{animation:highlight 1.2s;animation-timing-function:cubic-bezier(1,-.02,.45,.89)}table{border-width:1px;border-style:solid;border-color:#565c64;border-collapse:collapse;margin-bottom:12px}table td{padding:5px}table tr{border-width:1px}thead{display:none}</style></head><body class="d-flex flex-column min-vh-100" style=overflow-x:hidden><svg xmlns="http://www.w3.org/2000/svg" style="display:none"><symbol id="check-circle-fill" fill="currentcolor" viewBox="0 0 16 16"><path d="M16 8A8 8 0 110 8a8 8 0 0116 0zm-3.97-3.03a.75.75.0 00-1.08.022L7.477 9.417 5.384 7.323a.75.75.0 00-1.06 1.06L6.97 11.03a.75.75.0 001.079-.02l3.992-4.99a.75.75.0 00-.01-1.05z"/></symbol><symbol id="info-fill" fill="currentcolor" viewBox="0 0 16 16"><path d="M8 16A8 8 0 108 0a8 8 0 000 16zm.93-9.412-1 4.705c-.07.34.029.533.304.533.194.0.487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703.0-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381 2.29-.287zM8 5.5a1 1 0 110-2 1 1 0 010 2z"/></symbol><symbol id="exclamation-triangle-fill" fill="currentcolor" viewBox="0 0 16 16"><path d="M8.982 1.566a1.13 1.13.0 00-1.96.0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889.0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535.0.954.462.9.995l-.35 3.507a.552.552.0 01-1.1.0L7.1 5.995A.905.905.0 018 5zm.002 6a1 1 0 110 2 1 1 0 010-2z"/></symbol></svg><header><nav class="navbar navbar-expand-md sticky-top bg-light border-bottom"><div class=container-fluid><a class=navbar-brand href=/Hilbish><img src=/Hilbish/hilbish-logo-and-text.png alt height=48> | ||
</a><button class=navbar-toggler type=button data-bs-toggle=collapse data-bs-target=#navbarSupportedContent aria-controls=navbarSupportedContent aria-expanded=false aria-label="Toggle navigation"> | ||
<span class=navbar-toggler-icon></span></button><div class="collapse navbar-collapse" id=navbarSupportedContent><ul class="navbar-nav me-auto mb-2 mb-lg-0"><li class=nav-item><a href=/Hilbish/versions/doc-improvements/ class=nav-link>Home</a></li><li class=nav-item><a href=/Hilbish/versions/doc-improvements/install/ class=nav-link>Install</a></li><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/ class=nav-link>Docs</a></li><li class=nav-item><a href=/Hilbish/versions/doc-improvements/blog/ class=nav-link>Blog</a></li></ul></div></div></nav></header><style>@media(min-width:768px){.sidenav{width:240px}}</style><div class=row><nav class="navbar-expand-md bg-light sidenav border-end"><div class=container><div class="collapse navbar-collapse" id=navbarSupportedContent><nav class="navbar navbar-expand-md bg-light sidenav col" style=margin-top:-20px><ul class="navbar-nav me-auto mb-2 mb-lg-0 flex-column col mt-4"><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/ class=nav-link><strong>Introduction</strong></a></li><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/getting-started/ class=nav-link><strong>Getting Started</strong></a></li><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/faq/ class=nav-link><strong>Frequently Asked Questions</strong></a></li><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/features/ class=nav-link><strong>Features</strong></a></li><ul style=list-style:none><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/features/notifications/ class=nav-link>Notification</a></li><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/features/runner-mode/ class=nav-link>Runner Mode</a></li></ul><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/hooks/ class=nav-link><strong>Hooks</strong></a></li><ul style=list-style:none><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/hooks/command/ class=nav-link>Command</a></li><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/hooks/hilbish/ class=nav-link>Hilbish</a></li><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/hooks/signal/ class=nav-link>Signal</a></li></ul><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/api/ class=nav-link><strong>API</strong></a></li><ul style=list-style:none><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/api/bait/ class=nav-link>Module bait</a></li><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/api/commander/ class=nav-link>Module commander</a></li><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/api/fs/ class=nav-link>Module fs</a></li><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/api/hilbish/ class=nav-link>Module hilbish</a></li><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.aliases/ class=nav-link>Module hilbish.aliases</a></li><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.completions/ class=nav-link>Module hilbish.completions</a></li><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.editor/ class=nav-link>Module hilbish.editor</a></li><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.history/ class=nav-link>Module hilbish.history</a></li><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.jobs/ class=nav-link>Module hilbish.jobs</a></li><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.module/ class=nav-link>Module hilbish.module</a></li><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.os/ class=nav-link>Module hilbish.os</a></li><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.runner/ class=nav-link>Module hilbish.runner</a></li><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.timers/ class=nav-link>Module hilbish.timers</a></li><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/api/hilbish/hilbish.userdir/ class=nav-link>Module hilbish.userDir</a></li><li class=nav-item><a href=/Hilbish/versions/doc-improvements/docs/api/terminal/ class=nav-link>Module terminal</a></li></ul></ul></nav></div></div></nav><container class="col mt-2" style="padding-left: 20px; padding-right: 20px;"><div><h1>Module commander</h1><p><em>library for custom commands<br></em></p><h3 id=introduction class=heading>Introduction | ||
<a href=#introduction class=heading-link><i class="fas fa-paperclip"></i></a></h3><p>Commander is a library for writing custom commands in Lua. | ||
In order to make it easier to write commands for Hilbish, | ||
not require separate scripts and to be able to use in a config, | ||
the Commander library exists. This is like a very simple wrapper | ||
that works with Hilbish for writing commands. Example:</p><div class=highlight><pre tabindex=0 class=chroma><code class=language-lua data-lang=lua><span class=line><span class=ln>1</span><span class=cl><span class=kd>local</span> <span class=n>commander</span> <span class=o>=</span> <span class=n>require</span> <span class=s1>'commander'</span> | ||
<a href=#introduction class=heading-link><i class="fas fa-paperclip"></i></a></h3><p>Commander is the library which handles Hilbish commands. This makes | ||
the user able to add Lua-written commands to their shell without making | ||
a separate script in a bin folder. Instead, you may simply use the Commander | ||
library in your Hilbish config.</p><div class=highlight><pre tabindex=0 class=chroma><code class=language-lua data-lang=lua><span class=line><span class=ln>1</span><span class=cl><span class=kd>local</span> <span class=n>commander</span> <span class=o>=</span> <span class=n>require</span> <span class=s1>'commander'</span> | ||
</span></span><span class=line><span class=ln>2</span><span class=cl> | ||
</span></span><span class=line><span class=ln>3</span><span class=cl><span class=n>commander.register</span><span class=p>(</span><span class=s1>'hello'</span><span class=p>,</span> <span class=kr>function</span><span class=p>(</span><span class=n>args</span><span class=p>,</span> <span class=n>sinks</span><span class=p>)</span> | ||
</span></span><span class=line><span class=ln>4</span><span class=cl> <span class=n>sinks.out</span><span class=p>:</span><span class=n>writeln</span> <span class=s1>'Hello world!'</span> | ||
</span></span><span class=line><span class=ln>5</span><span class=cl><span class=kr>end</span><span class=p>)</span> | ||
</span></span></code></pre></div><p>In this example, a command with the name of <code>hello</code> is created | ||
that will print <code>Hello world!</code> to output. One question you may | ||
have is: What is the <code>sinks</code> parameter?</p><p>The <code>sinks</code> parameter is a table with 3 keys: <code>in</code>, <code>out</code>, | ||
and <code>err</code>. The values of these is a <a href=/Hilbish/docs/api/hilbish/#sink style=text-decoration:none>Sink</a>.</p><ul><li><code>in</code> is the standard input. You can read from this sink | ||
to get user input.</li><li><code>out</code> is standard output. This is usually where text meant for | ||
output should go.</li><li><code>err</code> is standard error. This sink is for writing errors, as the | ||
name would suggest.</li></ul><h3 id=functions class=heading>Functions | ||
<a href=#functions class=heading-link><i class="fas fa-paperclip"></i></a></h3><table><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><a href=#deregister>deregister(name)</a></td><td>Deregisters any command registered with <code>name</code></td></tr><tr><td><a href=#register>register(name, cb)</a></td><td>Register a command with <code>name</code> that runs <code>cb</code> when ran</td></tr></tbody></table><hr><div id=deregister><h4 class=heading>commander.deregister(name) | ||
<a href=#deregister class=heading-link><i class="fas fa-paperclip"></i></a></h4><p>Deregisters any command registered with <code>name</code></p><h5 id=parameters class=heading>Parameters | ||
<a href=#parameters class=heading-link><i class="fas fa-paperclip"></i></a></h5><p>This function has no parameters.</p></div><hr><div id=register><h4 class=heading>commander.register(name, cb) | ||
<a href=#register class=heading-link><i class="fas fa-paperclip"></i></a></h4><p>Register a command with <code>name</code> that runs <code>cb</code> when ran</p><h5 id=parameters-1 class=heading>Parameters | ||
<a href=#parameters-1 class=heading-link><i class="fas fa-paperclip"></i></a></h5><p>This function has no parameters.</p></div></div><div class="footer mt-auto"><p class="card-small text-muted">Want to help improve this page? <a href=https://github.com/Rosettea/Hilbish/issues/new/choose>Create an issue.</a></p></div></container></div><footer class="footer mt-auto mt-auto py-3 bg-light row border-top"><div class="col mb-3"></div><div class="col mb-3"><a href=/Hilbish class="d-flex align-items-center mb-3 link-dark text-decoration-none"><img src=/Hilbish/hilbish-logo-and-text.png alt height=48 class="d-inline-block align-text-top" style=margin-left:-20px></a><ul class="nav flex-column"><li class="nav-item mb-2"><a href=/Hilbish class="nav-link p-0 text-muted">Home</a></li><li class="nav-item mb-2"><a href=/Hilbish/docs/faq class="nav-link p-0 text-muted">FAQ</a></li><li class="nav-item mb-2"><a href=https://github.com/Rosettea/Hilbish class="nav-link p-0 text-muted">Source</a></li><li class="nav-item mb-2"><a href=https://github.com/Rosettea/Hilbish/releases class="nav-link p-0 text-muted">Releases</a></li><li class="nav-item mb-2"><a href=/Hilbish/docs class="nav-link p-0 text-muted">Documentation</a></li></ul></div><div class="col mb-3"></div><div class="col mb-3"></div><div class="col mb-3"></div><div class="col mb-3"><p class="text-muted mt-4">Rosettea © 2022-2023<br>Made with <i class="fa-solid fa-heart" style=color:#f6345b></i></p></div><div class="col mb-3"></div></footer></body></html> | ||
and <code>err</code>. All of them are a <a href=/Hilbish/docs/api/hilbish/#sink style=text-decoration:none>Sink</a>.</p><ul><li><code>in</code> is the standard input. | ||
You may use the read functions on this sink to get input from the user.</li><li><code>out</code> is standard output. | ||
This is usually where command output should go.</li><li><code>err</code> is standard error. | ||
This sink is for writing errors, as the name would suggest.</li></ul><h3 id=functions class=heading>Functions | ||
<a href=#functions class=heading-link><i class="fas fa-paperclip"></i></a></h3><table><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><a href=#deregister>deregister(name)</a></td><td>Removes the named command. Note that this will only remove Commander-registered commands.</td></tr><tr><td><a href=#register>register(name, cb)</a></td><td>Adds a new command with the given <code>name</code>. When Hilbish has to run a command with a name,</td></tr></tbody></table><hr><div id=deregister><h4 class=heading>commander.deregister(name) | ||
<a href=#deregister class=heading-link><i class="fas fa-paperclip"></i></a></h4><p>Removes the named command. Note that this will only remove Commander-registered commands.</p><h5 id=parameters class=heading>Parameters | ||
<a href=#parameters class=heading-link><i class="fas fa-paperclip"></i></a></h5><p><code>string</code> <strong><code>name</code></strong><br>Name of the command to remove.</p></div><hr><div id=register><h4 class=heading>commander.register(name, cb) | ||
<a href=#register class=heading-link><i class="fas fa-paperclip"></i></a></h4><p>Adds a new command with the given <code>name</code>. When Hilbish has to run a command with a name, | ||
it will run the function providing the arguments and sinks.</p><h5 id=parameters-1 class=heading>Parameters | ||
<a href=#parameters-1 class=heading-link><i class="fas fa-paperclip"></i></a></h5><p><code>string</code> <strong><code>name</code></strong><br>Name of the command</p><p><code>function</code> <strong><code>cb</code></strong><br>Callback to handle command invocation</p><h5 id=example class=heading>Example | ||
<a href=#example class=heading-link><i class="fas fa-paperclip"></i></a></h5><div class=highlight><pre tabindex=0 class=chroma><code class=language-lua data-lang=lua><span class=line><span class=ln>1</span><span class=cl><span class=c1>-- When you run the command `hello` in the shell, it will print `Hello world`.</span> | ||
</span></span><span class=line><span class=ln>2</span><span class=cl><span class=c1>-- If you run it with, for example, `hello Hilbish`, it will print 'Hello Hilbish'</span> | ||
</span></span><span class=line><span class=ln>3</span><span class=cl><span class=n>commander.register</span><span class=p>(</span><span class=s1>'hello'</span><span class=p>,</span> <span class=kr>function</span><span class=p>(</span><span class=n>args</span><span class=p>,</span> <span class=n>sinks</span><span class=p>)</span> | ||
</span></span><span class=line><span class=ln>4</span><span class=cl> <span class=kd>local</span> <span class=n>name</span> <span class=o>=</span> <span class=s1>'world'</span> | ||
</span></span><span class=line><span class=ln>5</span><span class=cl> <span class=kr>if</span> <span class=o>#</span><span class=n>args</span> <span class=o>></span> <span class=mi>0</span> <span class=kr>then</span> <span class=n>name</span> <span class=o>=</span> <span class=n>args</span><span class=p>[</span><span class=mi>1</span><span class=p>]</span> <span class=kr>end</span> | ||
</span></span><span class=line><span class=ln>6</span><span class=cl> | ||
</span></span><span class=line><span class=ln>7</span><span class=cl> <span class=n>sinks.out</span><span class=p>:</span><span class=n>writeln</span><span class=p>(</span><span class=s1>'Hello '</span> <span class=o>..</span> <span class=n>name</span><span class=p>)</span> | ||
</span></span><span class=line><span class=ln>8</span><span class=cl><span class=kr>end</span><span class=p>)</span> | ||
</span></span></code></pre></div></div></div><div class="footer mt-auto"><p class="card-small text-muted">Want to help improve this page? <a href=https://github.com/Rosettea/Hilbish/issues/new/choose>Create an issue.</a></p></div></container></div><footer class="footer mt-auto mt-auto py-3 bg-light row border-top"><div class="col mb-3"></div><div class="col mb-3"><a href=/Hilbish class="d-flex align-items-center mb-3 link-dark text-decoration-none"><img src=/Hilbish/hilbish-logo-and-text.png alt height=48 class="d-inline-block align-text-top" style=margin-left:-20px></a><ul class="nav flex-column"><li class="nav-item mb-2"><a href=/Hilbish class="nav-link p-0 text-muted">Home</a></li><li class="nav-item mb-2"><a href=/Hilbish/docs/faq class="nav-link p-0 text-muted">FAQ</a></li><li class="nav-item mb-2"><a href=https://github.com/Rosettea/Hilbish class="nav-link p-0 text-muted">Source</a></li><li class="nav-item mb-2"><a href=https://github.com/Rosettea/Hilbish/releases class="nav-link p-0 text-muted">Releases</a></li><li class="nav-item mb-2"><a href=/Hilbish/docs class="nav-link p-0 text-muted">Documentation</a></li></ul></div><div class="col mb-3"></div><div class="col mb-3"></div><div class="col mb-3"></div><div class="col mb-3"><p class="text-muted mt-4">Rosettea © 2022-2023<br>Made with <i class="fa-solid fa-heart" style=color:#f6345b></i></p></div><div class="col mb-3"></div></footer></body></html> |
Oops, something went wrong.