feat: write errors and panics to tmp log file

pull/59/head
sammy 2021-05-15 07:32:25 -04:00
parent da6a4aa70f
commit 1e1b9d07b0
No known key found for this signature in database
GPG Key ID: 50EE40A2809851F5
1 changed files with 18 additions and 2 deletions

20
main.go
View File

@ -4,7 +4,11 @@ import (
"fmt" "fmt"
"io" "io"
"os" "os"
dbg "runtime/debug"
"strings" "strings"
"strconv"
"syscall"
"io/ioutil"
"os/signal" "os/signal"
"os/user" "os/user"
"path/filepath" "path/filepath"
@ -18,9 +22,10 @@ import (
"golang.org/x/term" "golang.org/x/term"
) )
var version = "v0.4.1-dev.9"
var ( var (
version = "v0.4.1-dev.9"
debug = "false"
l *lua.LState l *lua.LState
prompt string // User's prompt, this will get set when lua side is initialized prompt string // User's prompt, this will get set when lua side is initialized
@ -57,7 +62,18 @@ func main() {
loginshflag := getopt.Lookup('l').Seen() loginshflag := getopt.Lookup('l').Seen()
interactiveflag := getopt.Lookup('i').Seen() interactiveflag := getopt.Lookup('i').Seen()
noexecflag := getopt.Lookup('n').Seen() noexecflag := getopt.Lookup('n').Seen()
debugbool, _ := strconv.ParseBool(debug)
if debugbool {
tmpfile, _ := ioutil.TempFile("", "hilbish*.log")
// redirects stderr to our tmpfile
// this is for logging panics
err := syscall.Dup2(int(tmpfile.Fd()), int(os.Stderr.Fd()))
if err != nil {
fmt.Println("Failed to redirect stderr to file: %v", err)
}
}
if *cmdflag == "" || interactiveflag { if *cmdflag == "" || interactiveflag {
interactive = true interactive = true
} }