to write output, you would usually just use the print builtin
since commanders are just lua custom commands but this does not
consider the fact of pipes or other shell operators being used
to redirect or whatever.
this adds readable/writable "sinks" which is a type for input
or output and is currently only used for commanders but can be
used for other hilbish things in the future
- get docs properly for hilbish module and its interfaces
- deal with negative numbers causing yaml metadata parsing to fail
- change from index to _index to match hugo
changes the actual file format of docs to markup since that's basically what we have been
using in the first place.
the docgen command has been modified to write markdown headings with the function name and
yaml metadata for easy consumption by hugo for the website.
all other docs have been moved to markdown as well this is the main reason this is a "breaking" change
users will have to reinstall hilbish (task uninstall and task install) to remove the old plaintext docs
an `error` hook is now thrown when an event in lua
throws an error (errors from go side should not happen)
it includes the event name, handler, and error message
a hooks function has also been added. it returns a table
of handlers for a specific event.
with the previous commit allowing users to override
hilbish.runner.sh and it being ran by hilbish, the
code for the autocd opt can just override that
function and do the autocd functionality instead
of reimplementing a hybrid runner.
this means that if any other custom runner wants
autocd functionality they can have it with the sh runner
* refactor: put file history handler in line reader instance instead of global
* feat: add lua history handler in go
* feat: use lua to retrieve readline history
* refactor: handle history in lua
this also introduces a new opt: history
if it is false, command history won't get added
* fix: remove nature.history require
* docs: add changes in changelog
* fix: add comma after history opt
* refactor!: make runners require returning a table
allows for more options for runners in the future,
and makes it so that you can avoid passing
certain args more easily.
* feat: allow runners to specify continue in return to prompt for more input
* docs: update changelog
* refactor: reorder returns of handleSh function
* refactor: move out reprompting and runner handling to functions
makes codefactor happy hopefully. this commit includes
a fix to check if after reprompt the user hits ctrl d
and just exits cleanly
* feat: add hilbish.job.add function
this is mainly to accomodate for the employer
handler (#152)
* feat!: add start function to jobs
the commit itself adds a few things but the
main purpose is to facilitate a lua side start
function that can restart the job
there is a breaking change in the hilbish.job.add
function; it is now required to provide an extra
table for arguments, since the first cmd
table isnt really what's actually ran
* fix: reuse standard files for jobs
* fix: deadlock in lua job add function and not taking proper amount of args
* fix: assign binary path to job
* feat: emit job.add hook when job is added
* chore: update modules
* fix: use setpgid on cmd procattr for background jobs
* fix: use right procattr on correct os
* fix: set bg proc attr in build tagged file
* feat: add disown function
* fix: stop jobs on exit
* feat: add disown command
* feat: add jobs.last function to get last job
* feat: make disown command get last job if id isnt suppied as arg
* chore: remove unused code
* feat: add job output
* chore: fix comments
* fix!: make exec path in job add explicit in lua side
* docs: add docs and changelogs relating to jobs
this adds `hilbish.opts`, a table to set
simple options akin to shopt or setopt on
other shells. this commit specifically also
includes the autocd opt, which functions the
way you expect it to
to set opts, simply do `hilbish.opts.name = val`,
where `name` is the opt you want to set and `val`
being the opt setting.
ie: `hilbish.opts.autocd = true` to turn on autocd
basically, i have a `c` alias which is `git commit`,
this would resolve to `git commit` literally to try
and complete `commit`, which wouldnt match.
this fixes that, and instead itll suggest commands
that start with `c`. if there is a space after and
completion is requested, itll use the alias properly
prelude is no longer. it is now nature.
organized the single file prelude into multiple
source files and renamed it to nature. this is coming
after thought that it can turn into a general hilbish
lua core, with user facing modules as well.
this introduces the `nature.dirs` module, to interact
and get recently changed to directories and last/old
cwd.