* 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
* 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
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.
major rewrite which changes the library hilbish uses for it's lua vm
this one implements lua 5.4, and since that's a major version bump,
it's a breaking change. introduced here also is a fix for `hilbish.login`
not being the right value
* refactor: start work on lua 5.4
lots of commented out code
ive found a go lua library which implements lua 5.4
and found an opportunity to start working on it.
this commit basically removes everything and just leaves
enough for the shell to be "usable" and able to start.
there are no builtins or libraries (besides the `hilbish` global)
* fix: call cont next in prompt function
this continues execution of lua, very obvious
fixes an issue with code stopping at the prompt function
* fix: handle errors in user config
* fix: handle panic in lua input if it is incorrect
* feat: implement bait
* refactor: use util funcs to run lua where possible
* refactor: move arg handle function to util
* feat: implement commander
* feat: implement fs
* feat: add hilbish module functions used by prelude
* chore: use custom fork of golua
* fix: make sure args to setenv are strings in prelude
* feat: implement completions
* chore: remove comment
* feat: implement terminal
* feat: implement hilbish.interval
* chore: update lunacolors
* chore: update golua
* feat: implement aliases
* feat: add input mode
* feat: implement runner mode
* style: use comma separated cases instead of fallthrough
* feat: implement syntax highlight and hints
* chore: add comments to document util functions
* chore: fix dofile comment doc
* refactor: make loader functions for go modules unexported
* feat: implement job management
* feat: add hilbish properties
* feat: implement all hilbish module functions
* feat: implement history interface
* feat: add completion interface
* feat: add module description docs
* feat: implement os interface
* refactor: use hlalias for add function in hilbish.alias interface
* feat: make it so hilbish.run can return command output
* fix: set hilbish.exitCode to last command exit code
* fix(ansikit): flush on io.write
* fix: deregister commander if return isnt number
* feat: run script when provided path
* fix: read file manually in DoFile to avoid shebang
* chore: add comment for reason of unreading byte
* fix: remove prelude error printing
* fix: add names at chunk load for context in errors
* fix: add newline at the beginning of file buffer when there is shebang
this makes the line count in error messages line up properly
* fix: remove extra newline after error
same reason as not using ~/.hilbishrc.lua, and also
the fact that users can now just check if
`hilbish.login` is true in their config which is
more organized
~/.hilbishrc.lua has been removed and will no longer be loaded.
instead, $XDG_CONFIG_HOME/hilbish/init.lua is to be used
the history path has been changed to a more suited one.
on linux, it is in $XDG_DATA_HOME/hilbish/.hilbish-history,
or otherwise ~/.local/share/hilbish/.hilbish-history
500th commit!
adds the `hilbish.aliases` interface
it allows you to add, delete and get all aliases
there was also a slight refactor with alias resolving in this commit,
there is a single resolve function instead of duplicate code.
with consideration this could be exported to lua side,
but i see no reason for it