Hilbish/versions/doc-improvements/docs/jobs/index.html

30 lines
9.4 KiB
HTML
Raw Normal View History

<!doctype html><html><head><title>— Hilbish</title>
<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=" — Hilbish" property="og:title"><meta content="Hilbish has pretty standard job control. It&rsquo;s missing one or two things, but works well. One thing which is different from other shells (besides Hilbish) itself is the API for jobs, and of course it&rsquo;s in Lua. You can add jobs, stop and delete (disown) them and even get output.
Job Interface The job interface refers to hilbish.jobs.
Functions (Note that in the list here, they&rsquo;re called from hilbish.jobs, so a listing of foo would mean hilbish." property="og:description"><meta content="Hilbish has pretty standard job control. It&rsquo;s missing one or two things, but works well. One thing which is different from other shells (besides Hilbish) itself is the API for jobs, and of course it&rsquo;s in Lua. You can add jobs, stop and delete (disown) them and even get output.
Job Interface The job interface refers to hilbish.jobs.
Functions (Note that in the list here, they&rsquo;re called from hilbish.jobs, so a listing of foo would mean hilbish." 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/bootstrap@5.2.0-beta1/dist/css/bootstrap.min.css rel=stylesheet integrity=sha384-0evHe/X+R7YkIZDRvuzKMRqM+OrBnVFBL6DOitfPri4tjfHxaWutUpFmBp4vmVor crossorigin=anonymous><script src=https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/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.6f02b4e713031075d3aa69063ba00e2a0413cabca7ebc2791bdbb6ab0abb5ae0.css integrity="sha256-bwK05xMDEHXTqmkGO6AOKgQTyryn68J5G9u2qwq7WuA="></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><main><div class="container mt-2"><h1></h1><img src='https://avatars1.githubusercontent.com/u/38820196?s=460&amp;u=b9f4efb2375bae6cb30656d790c6e0a2939327c0&amp;v=4' width=48 style=border-radius:100%>
<em class=text-muted>by <strong>sammyette</strong></em><div class=my-4><p>Hilbish has pretty standard job control. It&rsquo;s missing one or two things,
but works well. One thing which is different from other shells
(besides Hilbish) itself is the API for jobs, and of course it&rsquo;s in Lua.
You can add jobs, stop and delete (disown) them and even get output.</p><h2 id=job-interface class=heading>Job Interface
<a href=#job-interface class=heading-link><i class="fas fa-paperclip"></i></a></h2><p>The job interface refers to <code>hilbish.jobs</code>.</p><h3 id=functions class=heading>Functions
<a href=#functions class=heading-link><i class="fas fa-paperclip"></i></a></h3><p>(Note that in the list here, they&rsquo;re called from <code>hilbish.jobs</code>, so
a listing of <code>foo</code> would mean <code>hilbish.jobs.foo</code>)</p><ul><li><code>all()</code> -> {jobs}: Returns a table of all jobs.</li><li><code>last()</code> -> job: Returns the last added job.</li><li><code>get(id)</code> -> job: Get a job by its ID.</li><li><code>add(cmdstr, args, execPath)</code> -> job: Adds a new job to the job table.
Note that this does not run the command; You have to start it manually.
<code>cmdstr</code> is the user&rsquo;s input for the job, <code>args</code> is a table of arguments
for the command. It includes arg0 (don&rsquo;t set it as entry 0 in the table)
and <code>execPath</code> is an absolute path for the command executable.</li><li><code>disown(id)</code>: Removes a job by ID from the job table.</li></ul><h2 id=job-object class=heading>Job Object
<a href=#job-object class=heading-link><i class="fas fa-paperclip"></i></a></h2><p>A job object is a piece of <code>userdata</code>. All the functions of a job require
you to call them with a colon, since they are <em>methods</em> for the job object.
Example: hilbish.jobs.last():foreground()
Which will foreground the last job.</p><p>You can still have a job object for a disowned job,
it just won&rsquo;t be <em>working</em> anywhere. :^)</p><h3 id=properties class=heading>Properties
<a href=#properties class=heading-link><i class="fas fa-paperclip"></i></a></h3><ul><li><code>cmd</code>: command string</li><li><code>running</code>: boolean whether the job is running</li><li><code>id</code>: unique id for the job</li><li><code>pid</code>: process id for the job</li><li><code>exitCode</code>: exit code of the job
In ordinary cases you&rsquo;d prefer to use the <code>id</code> instead of <code>pid</code>.
The <code>id</code> is unique to Hilbish and is how you get jobs with the
<code>hilbish.jobs</code> interface. It may also not describe the job entirely.</li></ul><h3 id=functions-1 class=heading>Functions
<a href=#functions-1 class=heading-link><i class="fas fa-paperclip"></i></a></h3><ul><li><code>stop()</code>: Stops the job.</li><li><code>start()</code>: Starts the job.</li><li><code>foreground()</code>: Set the job as the current running foreground process, or
run it in the foreground after it has been suspended.</li><li><code>background()</code>: Run the job in the background after it has been suspended.</li></ul></div></div></main><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 &copy; 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>