Compare commits

..

No commits in common. "754a63c74b55467ed7995923726ef81c25941161" and "802f444ba6ebb7e1e642d25762c89da7090f8f04" have entirely different histories.

5 changed files with 4 additions and 71 deletions

7
api.go
View File

@ -107,16 +107,11 @@ Check out the {blue}{bold}guide{reset} command to get started.
util.Document(L, hshcomp, "Completions interface for Hilbish.")
L.SetField(mod, "completion", hshcomp)
// hilbish.runner table
runnerModule := runnerModeLoader(L)
util.Document(L, runnerModule, "Runner/exec interface for Hilbish.")
L.SetField(mod, "runner", runnerModule)
// hilbish.jobs table
jobs = newJobHandler()
jobModule := jobs.loader(L)
util.Document(L, jobModule, "(Background) job interface.")
L.SetField(mod, "jobs", jobModule)
L.Push(mod)
@ -259,7 +254,7 @@ func hlmlprompt(L *lua.LState) int {
}
// alias(cmd, orig)
// Sets an alias of `cmd` to `orig`
// Sets an alias of `orig` to `cmd`
// --- @param cmd string
// --- @param orig string
func hlalias(L *lua.LState) int {

View File

@ -1,4 +1,4 @@
alias(cmd, orig) > Sets an alias of `cmd` to `orig`
alias(cmd, orig) > Sets an alias of `orig` to `cmd`
appendPath(dir) > Appends `dir` to $PATH

View File

@ -2,7 +2,7 @@
local hilbish = {}
--- Sets an alias of `cmd` to `orig`
--- Sets an alias of `orig` to `cmd`
--- @param cmd string
--- @param orig string
function hilbish.alias(cmd, orig) end

View File

@ -262,7 +262,6 @@ func execCommand(cmd string) error {
err = cmd.Start()
job := jobs.getLatest()
job.setHandle(cmd.Process)
if err == nil {
if bg {
job.start(cmd.Process.Pid)

63
job.go
View File

@ -2,7 +2,6 @@ package main
import (
"sync"
"os"
"github.com/yuin/gopher-lua"
)
@ -15,7 +14,6 @@ type job struct {
id int
pid int
exitCode int
proc *os.Process
}
func (j *job) start(pid int) {
@ -24,27 +22,15 @@ func (j *job) start(pid int) {
hooks.Em.Emit("job.start", j.lua())
}
func (j *job) stop() {
// finish will be called in exec handle
j.proc.Kill()
}
func (j *job) finish() {
j.running = false
hooks.Em.Emit("job.done", j.lua())
}
func (j *job) setHandle(handle *os.Process) {
j.proc = handle
}
func (j *job) lua() *lua.LTable {
// returns lua table for job
// because userdata is gross
jobFuncs := map[string]lua.LGFunction{
"stop": j.luaStop,
}
luaJob := l.SetFuncs(l.NewTable(), jobFuncs)
luaJob := l.NewTable()
l.SetField(luaJob, "cmd", lua.LString(j.cmd))
l.SetField(luaJob, "running", lua.LBool(j.running))
@ -55,14 +41,6 @@ func (j *job) lua() *lua.LTable {
return luaJob
}
func (j *job) luaStop(L *lua.LState) int {
if j.running {
j.stop()
}
return 0
}
type jobHandler struct {
jobs map[int]*job
latestID int
@ -95,42 +73,3 @@ func (j *jobHandler) getLatest() *job {
return j.jobs[j.latestID]
}
func (j *jobHandler) loader(L *lua.LState) *lua.LTable {
jobFuncs := map[string]lua.LGFunction{
"all": j.luaAllJobs,
"get": j.luaGetJob,
}
luaJob := l.SetFuncs(l.NewTable(), jobFuncs)
return luaJob
}
func (j *jobHandler) luaGetJob(L *lua.LState) int {
j.mu.RLock()
defer j.mu.RUnlock()
jobID := L.CheckInt(1)
job := j.jobs[jobID]
if job != nil {
return 0
}
L.Push(job.lua())
return 1
}
func (j *jobHandler) luaAllJobs(L *lua.LState) int {
j.mu.RLock()
defer j.mu.RUnlock()
jobTbl := L.NewTable()
for id, job := range j.jobs {
jobTbl.Insert(id, job.lua())
}
L.Push(jobTbl)
return 1
}