2
2
mirror of https://github.com/Hilbis/Hilbish synced 2025-05-06 04:13:24 +00:00

247 lines
12 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html class="bg-stone-50 dark:bg-neutral-950 text-black dark:text-white"><head><meta content="width=device-width, initial-scale=1.0" name="viewport"><link href="/tailwind.css" rel="stylesheet"><title>Hilbish</title><meta content="#ff89dd" name="theme-color"><meta content="./hilbish-flower.png" property="og:image"><meta content="Hilbish" property="og:title"><meta content="Hilbish" property="og:site_name"><meta content="website" property="og:type"><meta content="Something Unique. Hilbish is the new interactive shell for Lua fans. Extensible, scriptable, configurable: All in Lua." property="og:description"><meta content="Something Unique. Hilbish is the new interactive shell for Lua fans. Extensible, scriptable, configurable: All in Lua." name="description"><meta content="Lua,Shell,Hilbish,Linux,zsh,bash" name="keywords"><meta content="https://rosettea.github.io/Hilbish/versions/new-website" property="og:url"></head><body><nav class="flex sticky top-0 w-full z-50 border-b border-b-zinc-300 backdrop-blur-md h-12"><div class="flex my-auto px-2"><div><a class="flex items-center gap-1" href="/"><img class="h-6" src="/hilbish-flower.png"><span class="self-center text-2xl">Hilbish</span></a></div></div></nav><div class="flex flex-col"><div class="block sm:hidden h-10 sticky top-12 flex py-2 px-4 border-b border-b-zinc-300 w-full gap-2 backdrop-blur-sm bg-zinc-300/50 z-50"><label class="cursor-pointer" for="sidebar-toggle"><tag><svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" class="fill-black"><path d="M120-240v-80h240v80H120Zm0-200v-80h480v80H120Zm0-200v-80h720v80H120Z"/></svg></tag></label><span>Module fs</span></div><div class="grid sm:flex"><input class="peer hidden" id="sidebar-toggle" type="checkbox"><div class="border-r border-r-zinc-300 col-start-1 row-start-1 sticky top-22 sm:top-12 h-full sm:h-svh bg-neutral-200 basis-3/5 transition-transform duration-300 -translate-x-full sm:translate-x-0 peer-checked:translate-x-0 z-30"><div class="p-4 -mb-4 overflow-y-auto h-full"><h2 class="text-xl font-semibold mb-4">Sidebar</h2><ul><li class="mb-2">Lunacolors</li><li class="mb-2">Introduction</li><li class="mb-2">Completions</li><li class="mb-2">Frequently Asked Questions</li><li class="mb-2">Getting Started</li><li class="mb-2">Options</li><li class="mb-2">Features</li><li class="mb-2">Runner Mode</li><li class="mb-2">Notification</li><li class="mb-2">Signals</li><li class="mb-2">Signal</li><li class="mb-2">Command</li><li class="mb-2">Hilbish</li><li class="mb-2">Vim Mode</li><li class="mb-2">Actions</li><li class="mb-2">Module bait</li><li class="mb-2">Module terminal</li><li class="mb-2">API</li><li class="mb-2">Module fs</li><li class="mb-2">Module commander</li><li class="mb-2">Module snail</li><li class="mb-2">Module hilbish.aliases</li><li class="mb-2">Module hilbish.abbr</li><li class="mb-2">Module hilbish</li><li class="mb-2">Module hilbish.userDir</li><li class="mb-2">Module hilbish.messages</li><li class="mb-2">Module hilbish.runner</li><li class="mb-2">Module hilbish.history</li><li class="mb-2">Module hilbish.jobs</li><li class="mb-2">Module hilbish.editor</li><li class="mb-2">Module hilbish.module</li><li class="mb-2">Module hilbish.os</li><li class="mb-2">Module hilbish.completion</li><li class="mb-2">Module hilbish.timers</li><li class="mb-2">Module dirs</li><li class="mb-2">Nature</li><li class="mb-2">Module doc</li></ul></div></div><main class="col-start-1 row-start-1 transition-all duration-300 peer-checked:filter peer-checked:blur-sm peer-checked:bg-black/30 px-4 pt-2"><h1>Module fs</h1><Tag xmlns="namespace"><h2>Introduction</h2>
<p>The fs module provides filesystem functions to Hilbish. While Luas standard
library has some I/O functions, theyre missing a lot of the basics. The <code>fs</code>
library offers more functions and will work on any operating system Hilbish does.</p>
<h2>Functions</h2>
<table>
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="#abs" rel="noopener noreferrer">abs(path) -&gt; string</a></td>
<td>Returns an absolute version of the <code>path</code>.</td>
</tr>
<tr>
<td><a href="#basename" rel="noopener noreferrer">basename(path) -&gt; string</a></td>
<td>Returns the “basename,” or the last part of the provided <code>path</code>. If path is empty,</td>
</tr>
<tr>
<td><a href="#cd" rel="noopener noreferrer">cd(dir)</a></td>
<td>Changes Hilbishs directory to <code>dir</code>.</td>
</tr>
<tr>
<td><a href="#dir" rel="noopener noreferrer">dir(path) -&gt; string</a></td>
<td>Returns the directory part of <code>path</code>. If a file path like</td>
</tr>
<tr>
<td><a href="#glob" rel="noopener noreferrer">glob(pattern) -&gt; matches (table)</a></td>
<td>Match all files based on the provided <code>pattern</code>.</td>
</tr>
<tr>
<td><a href="#join" rel="noopener noreferrer">join(…path) -&gt; string</a></td>
<td>Takes any list of paths and joins them based on the operating systems path separator.</td>
</tr>
<tr>
<td><a href="#mkdir" rel="noopener noreferrer">mkdir(name, recursive)</a></td>
<td>Creates a new directory with the provided <code>name</code>.</td>
</tr>
<tr>
<td><a href="#pipe" rel="noopener noreferrer">fpipe() -&gt; File, File</a></td>
<td>Returns a pair of connected files, also known as a pipe.</td>
</tr>
<tr>
<td><a href="#readdir" rel="noopener noreferrer">readdir(path) -&gt; table[string]</a></td>
<td>Returns a list of all files and directories in the provided path.</td>
</tr>
<tr>
<td><a href="#stat" rel="noopener noreferrer">stat(path) -&gt; {}</a></td>
<td>Returns the information about a given <code>path</code>.</td>
</tr>
</tbody>
</table>
<h2>Static module fields</h2>
<table>
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>pathSep</td>
<td>The operating systems path separator.</td>
</tr>
</tbody>
</table>
<hr>
<div>
<h4>
fs.abs(path) -&gt; string
<a href="#abs" rel="noopener noreferrer">
<i></i>
</a>
</h4>
<p>Returns an absolute version of the <code>path</code>.<br>
This can be used to resolve short paths like <code>..</code> to <code>/home/user</code>.</p>
<h4>Parameters</h4>
<p><code>string</code> <strong><code>path</code></strong></p>
</div>
<hr>
<div>
<h4>
fs.basename(path) -&gt; string
<a href="#basename" rel="noopener noreferrer">
<i></i>
</a>
</h4>
<p>Returns the “basename,” or the last part of the provided <code>path</code>. If path is empty,<br>
<code>.</code> will be returned.</p>
<h4>Parameters</h4>
<p><code>string</code> <strong><code>path</code></strong><br>
Path to get the base name of.</p>
</div>
<hr>
<div>
<h4>
fs.cd(dir)
<a href="#cd" rel="noopener noreferrer">
<i></i>
</a>
</h4>
<p>Changes Hilbishs directory to <code>dir</code>.</p>
<h4>Parameters</h4>
<p><code>string</code> <strong><code>dir</code></strong><br>
Path to change directory to.</p>
</div>
<hr>
<div>
<h4>
fs.dir(path) -&gt; string
<a href="#dir" rel="noopener noreferrer">
<i></i>
</a>
</h4>
<p>Returns the directory part of <code>path</code>. If a file path like<br>
<code>~/Documents/doc.txt</code> then this function will return <code>~/Documents</code>.</p>
<h4>Parameters</h4>
<p><code>string</code> <strong><code>path</code></strong><br>
Path to get the directory for.</p>
</div>
<hr>
<div>
<h4>
fs.glob(pattern) -&gt; matches (table)
<a href="#glob" rel="noopener noreferrer">
<i></i>
</a>
</h4>
<p>Match all files based on the provided <code>pattern</code>.<br>
For the syntax refer to Gos filepath.Match function: <a href="https://pkg.go.dev/path/filepath#Match" rel="noopener noreferrer">https://pkg.go.dev/path/filepath#Match</a></p>
<h4>Parameters</h4>
<p><code>string</code> <strong><code>pattern</code></strong><br>
Pattern to compare files with.</p>
<h4>Example</h4>
<pre><code><span><span>--[[</span>
</span><span><span> Within a folder that contains the following files:</span>
</span><span><span> a.txt</span>
</span><span><span> init.lua</span>
</span><span><span> code.lua</span>
</span><span><span> doc.pdf</span>
</span><span><span>]]</span><span>--</span>
</span><span><span>local</span> <span>matches</span> <span>=</span> <span>fs</span><span>.</span><span>glob</span> <span>'./*.lua'</span>
</span><span><span>print</span><span>(</span><span>matches</span><span>)</span>
</span><span><span>-- -&gt; &lbrace;'init.lua', 'code.lua'&rbrace;</span>
</span></code></pre>
</div>
<hr>
<div>
<h4>
fs.join(...path) -&gt; string
<a href="#join" rel="noopener noreferrer">
<i></i>
</a>
</h4>
<p>Takes any list of paths and joins them based on the operating systems path separator.</p>
<h4>Parameters</h4>
<p><code>string</code> <strong><code>path</code></strong> (This type is variadic. You can pass an infinite amount of parameters with this type.)<br>
Paths to join together</p>
<h4>Example</h4>
<pre><code><span><span>-- This prints the directory for Hilbish's config!</span>
</span><span><span>print</span><span>(</span><span>fs</span><span>.</span><span>join</span><span>(</span><span>hilbish</span><span>.</span><span>userDir</span><span>.</span><span>config</span><span>,</span> <span>'hilbish'</span><span>)</span><span>)</span>
</span><span><span>-- -&gt; '/home/user/.config/hilbish' on Linux</span>
</span></code></pre>
</div>
<hr>
<div>
<h4>
fs.mkdir(name, recursive)
<a href="#mkdir" rel="noopener noreferrer">
<i></i>
</a>
</h4>
<p>Creates a new directory with the provided <code>name</code>.<br>
With <code>recursive</code>, mkdir will create parent directories.</p>
<h4>Parameters</h4>
<p><code>string</code> <strong><code>name</code></strong><br>
Name of the directory</p>
<p><code>boolean</code> <strong><code>recursive</code></strong><br>
Whether to create parent directories for the provided name</p>
<h4>Example</h4>
<pre><code><span><span>-- This will create the directory foo, then create the directory bar in the</span>
</span><span><span>-- foo directory. If recursive is false in this case, it will fail.</span>
</span><span><span>fs</span><span>.</span><span>mkdir</span><span>(</span><span>'./foo/bar'</span><span>,</span> <span>true</span><span>)</span>
</span></code></pre>
</div>
<hr>
<div>
<h4>
fs.fpipe() -&gt; File, File
<a href="#pipe" rel="noopener noreferrer">
<i></i>
</a>
</h4>
<p>Returns a pair of connected files, also known as a pipe.<br>
The type returned is a Lua file, same as returned from <code>io</code> functions.</p>
<h4>Parameters</h4>
<p>This function has no parameters.</p>
</div>
<hr>
<div>
<h4>
fs.readdir(path) -&gt; table[string]
<a href="#readdir" rel="noopener noreferrer">
<i></i>
</a>
</h4>
<p>Returns a list of all files and directories in the provided path.</p>
<h4>Parameters</h4>
<p><code>string</code> <strong><code>dir</code></strong></p>
</div>
<hr>
<div>
<h4>
fs.stat(path) -&gt; {}
<a href="#stat" rel="noopener noreferrer">
<i></i>
</a>
</h4>
<p>Returns the information about a given <code>path</code>.<br>
The returned table contains the following values:<br>
name (string) - Name of the path<br>
size (number) - Size of the path in bytes<br>
mode (string) - Unix permission mode in an octal format string (with leading 0)<br>
isDir (boolean) - If the path is a directory</p>
<h4>Parameters</h4>
<p><code>string</code> <strong><code>path</code></strong></p>
<h4>Example</h4>
<pre><code><span><span>local</span> <span>inspect</span> <span>=</span> <span>require</span> <span>'inspect'</span>
</span><span>
</span><span><span>local</span> <span>stat</span> <span>=</span> <span>fs</span><span>.</span><span>stat</span> <span>'~'</span>
</span><span><span>print</span><span>(</span><span>inspect</span><span>(</span><span>stat</span><span>)</span><span>)</span>
</span><span><span>--[[</span>
</span><span><span>Would print the following:</span>
</span><span><span>&lbrace;</span>
</span><span><span> isDir = true,</span>
</span><span><span> mode = "0755",</span>
</span><span><span> name = "username",</span>
</span><span><span> size = 12288</span>
</span><span><span>&rbrace;</span>
</span><span><span>]]</span><span>--</span>
</span></code></pre>
</div></Tag></main></div></div><footer class="py-4 px-6 flex flex-row justify-around border-t border-t-zinc-300"><div class="flex flex-col"><a class="flex items-center gap-1" href="/"><img class="h-24" src="/hilbish-flower.png"><span class="self-center text-6xl">Hilbish</span></a><span class="text-xl">The Moon-powered shell!</span><span class="text-light text-neutral-500">MIT License, copyright sammyette 2025</span></div><div class="flex flex-col"><a href="https://github.com/Rosettea/Hilbish"><span class="text-pink-300 text-light">GitHub</span></a></div></footer></body></html>