mirror of
				https://github.com/redhat-developer/odo.git
				synced 2025-10-19 03:06:19 +03:00 
			
		
		
		
	 0f828ec99f
			
		
	
	0f828ec99f
	
	
	
		
			
			* Ignore devstate when existing process name is not odo * Delete orphan devstate files with odo delete component * Update unit tests * Create fake system * Add unit tests for odo delete component * Integration tests for odo dev * Troubleshooting * First process on Windows is 4 * Use go-ps lib for pidExists
		
			
				
	
	
		
			42 lines
		
	
	
		
			908 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			908 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| //go:build windows
 | |
| // +build windows
 | |
| 
 | |
| package helper
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"os/exec"
 | |
| 	"syscall"
 | |
| 
 | |
| 	"github.com/onsi/gomega/gexec"
 | |
| 	"golang.org/x/sys/windows"
 | |
| )
 | |
| 
 | |
| func terminateProc(session *gexec.Session) error {
 | |
| 	pid := session.Command.Process.Pid
 | |
| 	dll, err := windows.LoadDLL("kernel32.dll")
 | |
| 	if err != nil {
 | |
| 		return fmt.Errorf("loading DLL: %w", err)
 | |
| 	}
 | |
| 	defer dll.Release()
 | |
| 	generateConsoleCtrlEvent, err := dll.FindProc("GenerateConsoleCtrlEvent")
 | |
| 	if err != nil {
 | |
| 		return fmt.Errorf("finding GenerateConsoleCtrlEvent: %w", err)
 | |
| 	}
 | |
| 	r1, _, err := generateConsoleCtrlEvent.Call(uintptr(syscall.CTRL_BREAK_EVENT), uintptr(pid))
 | |
| 	if r1 == 0 {
 | |
| 		return fmt.Errorf("calling GenerateConsoleCtrlEvent: %w", err)
 | |
| 	}
 | |
| 	return nil
 | |
| }
 | |
| 
 | |
| func setSysProcAttr(command *exec.Cmd) {
 | |
| 	command.SysProcAttr = &syscall.SysProcAttr{
 | |
| 		CreationFlags: syscall.CREATE_NEW_PROCESS_GROUP,
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func GetFirstProcess() int {
 | |
| 	return 4
 | |
| }
 |