1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- package nginx
- import (
- "os/exec"
- "runtime"
- "github.com/0xJacky/Nginx-UI/settings"
- "github.com/uozi-tech/cosy/logger"
- )
- var (
- nginxSbinPath string
- nginxVOutput string
- nginxTOutput string
- )
- // Returns the path to the nginx executable
- func getNginxSbinPath() string {
- // load from cache
- if nginxSbinPath != "" {
- return nginxSbinPath
- }
- // load from settings
- if settings.NginxSettings.SbinPath != "" {
- nginxSbinPath = settings.NginxSettings.SbinPath
- return nginxSbinPath
- }
- // load from system
- var path string
- var err error
- if runtime.GOOS == "windows" {
- path, err = exec.LookPath("nginx.exe")
- } else {
- path, err = exec.LookPath("nginx")
- }
- if err == nil {
- nginxSbinPath = path
- return nginxSbinPath
- }
- return nginxSbinPath
- }
- func getNginxV() string {
- // load from cache
- if nginxVOutput != "" {
- return nginxVOutput
- }
- // load from system
- exePath := getNginxSbinPath()
- out, err := execCommand(exePath, "-V")
- if err != nil {
- logger.Error(err)
- return ""
- }
- nginxVOutput = string(out)
- return nginxVOutput
- }
- // getNginxT executes nginx -T and returns the output
- func getNginxT() string {
- // load from cache
- if nginxTOutput != "" {
- return nginxTOutput
- }
- // load from system
- exePath := getNginxSbinPath()
- out, err := execCommand(exePath, "-T")
- if err != nil {
- logger.Error(err)
- return ""
- }
- nginxTOutput = out
- return nginxTOutput
- }
|