Files
umbrix-libcore/shared/debug.go

32 lines
651 B
Go
Raw Normal View History

2023-08-22 00:54:58 +03:30
package shared
import (
"bytes"
"encoding/json"
2023-10-14 17:22:26 +03:30
"fmt"
2023-08-22 00:54:58 +03:30
"os"
"path/filepath"
2023-10-14 17:22:26 +03:30
"runtime/debug"
2023-08-22 00:54:58 +03:30
"github.com/sagernet/sing-box/option"
)
func SaveCurrentConfig(path string, options option.Options) error {
var buffer bytes.Buffer
json.NewEncoder(&buffer)
encoder := json.NewEncoder(&buffer)
encoder.SetIndent("", " ")
err := encoder.Encode(options)
if err != nil {
return err
}
return os.WriteFile(filepath.Join(path, "current-config.json"), buffer.Bytes(), 0777)
}
2023-10-14 17:22:26 +03:30
func DeferPanicToError(name string, err func(error)) {
if r := recover(); r != nil {
s := fmt.Errorf("%s panic: %s\n%s", name, r, string(debug.Stack()))
err(s)
}
}