Files
umbrix-libcore/admin_service/cmd/main.go

51 lines
866 B
Go
Raw Normal View History

2024-01-29 21:55:01 +01:00
package main
/*
#include <stdlib.h>
#include <stdint.h>
// Import the function from the DLL
2024-02-02 13:47:41 +01:00
char* AdminServiceStart(const char* arg);
2024-01-29 21:55:01 +01:00
*/
import "C"
import (
2024-02-02 13:47:41 +01:00
"fmt"
2024-01-29 21:55:01 +01:00
"os"
2024-02-02 13:47:41 +01:00
"strings"
"unsafe"
2024-01-29 21:55:01 +01:00
)
func main() {
args := os.Args
if len(args) < 2 {
fmt.Println("Usage: HiddifyService.exe empty/start/stop/uninstall/install")
2024-01-29 21:55:01 +01:00
args = append(args, "")
}
2024-02-02 15:44:33 +01:00
arg := C.CString(args[1])
defer C.free(unsafe.Pointer(arg))
2024-02-02 13:47:41 +01:00
result := C.AdminServiceStart(arg)
defer C.free(unsafe.Pointer(result))
2024-02-02 15:44:33 +01:00
goRes := C.GoString(result)
2024-02-02 13:47:41 +01:00
parts := strings.SplitN(goRes, " ", 2)
var parsedExitCode int
_, err := fmt.Sscanf(parts[0], "%d", &parsedExitCode)
parsedOutMessage := parts[1]
if err != nil {
fmt.Println("Error parsing the string:", err)
return
}
2024-02-02 15:44:33 +01:00
2024-02-02 13:47:41 +01:00
fmt.Printf("%d %s", parsedExitCode, parsedOutMessage)
if parsedExitCode != 0 {
2024-02-02 15:44:33 +01:00
os.Exit(parsedExitCode)
2024-02-02 13:47:41 +01:00
}
2024-01-29 21:55:01 +01:00
}