/ internal / utilities / media.go
media.go
 1  package utilities
 2  
 3  import (
 4  	"fmt"
 5  	"os/exec"
 6  	"slices"
 7  	"strings"
 8  )
 9  
10  func OpenMedia(viewer string, paths []string) error {
11  	if viewer == "" {
12  		return UnspecifiedProgramError{}
13  	}
14  
15  	cmd := slices.Concat(strings.Split(viewer, " "), paths)
16  
17  	command := exec.Command(cmd[0], cmd[1:]...) // #nosec G204 -- External command call defined in user's configuration file.
18  
19  	if err := command.Start(); err != nil {
20  		return fmt.Errorf("received an error after starting the program: %w", err)
21  	}
22  
23  	return nil
24  }