// Copyright 2024 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT

package util

import (
	"runtime"
	"strings"
)

const isOSWindows = runtime.GOOS == "windows"

func CallerFuncName(optSkipParent ...int) string {
	pc := make([]uintptr, 1)
	skipParent := 0
	if len(optSkipParent) > 0 {
		skipParent = optSkipParent[0]
	}
	runtime.Callers(skipParent+1 /*this*/ +1 /*runtime*/, pc)
	funcName := runtime.FuncForPC(pc[0]).Name()
	if pos := strings.LastIndex(funcName, "/"); pos >= 0 {
		// only keep the last package name and func name
		funcName = funcName[pos+1:]
	}
	return funcName
}
