12
func GetStarted() error {
13
const CREATE_NEW_CONSOLE = 0x00000010
15
bannerScript := filepath.Join(AppDir, "ollama_welcome.ps1")
17
// TODO once we're signed, the execution policy bypass should be removed
18
"powershell", "-noexit", "-ExecutionPolicy", "Bypass", "-nologo", "-file", bannerScript,
20
args[0], err = exec.LookPath(args[0])
25
// Make sure the script actually exists
26
_, err = os.Stat(bannerScript)
28
return fmt.Errorf("getting started banner script error %s", err)
31
slog.Info(fmt.Sprintf("opening getting started terminal with %v", args))
32
attrs := &os.ProcAttr{
33
Files: []*os.File{os.Stdin, os.Stdout, os.Stderr},
34
Sys: &syscall.SysProcAttr{CreationFlags: CREATE_NEW_CONSOLE, HideWindow: false},
36
proc, err := os.StartProcess(args[0], args, attrs)
39
return fmt.Errorf("unable to start getting started shell %w", err)
42
slog.Debug(fmt.Sprintf("getting started terminal PID: %d", proc.Pid))