there are a few changes here
- documentation of each parameter separately has been added
to the generated text docs
- interfaces have been renamed to modules. this was honestly a pointless
and confusing distinction (interfaces are tables for modules that are
lua modules). it also makes it so that (formerly) interfaces and
modules line up with each other on the doc list
im not sure what else i did, these are old changes
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.
any interface which has lua side objects that are from go side for its api (namely jobs) they will use userdata instead of always creating a table to represent the object. this might or might not bring lower ram usage since there is now only 1 single reference to an object instead of always creating a table to expose on lua
breaking change since methods need to be called with a colon instead of dot
* 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 introduces a breaking change to runner functions.
they are now required to return 3 values, the first
being the user's input, and the 2 others that it was
before. the `hilbish.runner` functions respectively
have been updated, so if you just return from those
there will be no difference
adds a map (but lets call it a pool) of all
running timers. this makes us able to keep
track of all running intervals and timeouts.
it also means hilbish can wait for them to
be done before exiting (it only waits when
non interactive).
this introduces the `hilbish.timers` interface,
documented by `doc timers`. the `hilbish.interval`
and `hilbish.timeout` functions return a timer
object now.