mirror of
https://github.com/Hilbis/Hilbish
synced 2025-03-13 18:00:41 +00:00
* 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
43 lines
781 B
Go
43 lines
781 B
Go
// +build windows
|
|
|
|
package main
|
|
|
|
import (
|
|
"path/filepath"
|
|
"os"
|
|
"syscall"
|
|
)
|
|
|
|
var bgProcAttr *syscall.SysProcAttr = &syscall.SysProcAttr{
|
|
CreationFlags: syscall.CREATE_NEW_PROCESS_GROUP,
|
|
}
|
|
|
|
func findExecutable(path string, inPath, dirs bool) error {
|
|
nameExt := filepath.Ext(path)
|
|
pathExts := filepath.SplitList(os.Getenv("PATHEXT"))
|
|
if inPath {
|
|
if nameExt == "" {
|
|
for _, ext := range pathExts {
|
|
_, err := os.Stat(path + ext)
|
|
if err == nil {
|
|
return nil
|
|
}
|
|
}
|
|
} else {
|
|
_, err := os.Stat(path)
|
|
if err == nil {
|
|
if contains(pathExts, nameExt) { return nil }
|
|
return errNotExec
|
|
}
|
|
}
|
|
} else {
|
|
_, err := os.Stat(path)
|
|
if err == nil {
|
|
if contains(pathExts, nameExt) { return nil }
|
|
return errNotExec
|
|
}
|
|
}
|
|
|
|
return os.ErrNotExist
|
|
}
|