diff --git a/main.go b/main.go index df890c7e7..4e226c7af 100644 --- a/main.go +++ b/main.go @@ -7,15 +7,25 @@ import ( "github.com/fatih/color" "github.com/iawia002/lux/app" + "github.com/iawia002/lux/utils" ) func main() { + errFFMPEG := utils.IsFfmpegInstalled() + if errFFMPEG != nil { + fmt.Fprintf( + color.Output, + "Dependency not found: %s\n", + color.RedString("%s", errFFMPEG), + ) + os.Exit(1) + } if err := app.New().Run(os.Args); err != nil { fmt.Fprintf( color.Output, "Run %s failed: %s\n", color.CyanString("%s", app.Name), color.RedString("%v", err), ) - os.Exit(1) + os.Exit(2) } } diff --git a/utils/ffmpeg.go b/utils/ffmpeg.go index 0bca2940b..be0cc22f5 100644 --- a/utils/ffmpeg.go +++ b/utils/ffmpeg.go @@ -9,6 +9,14 @@ import ( "github.com/pkg/errors" ) +func IsFfmpegInstalled() error { + _, err := exec.LookPath("ffmpeg") + if err != nil { + return errors.Errorf("%s", err) + } + return nil +} + func runMergeCmd(cmd *exec.Cmd, paths []string, mergeFilePath string) error { var stderr bytes.Buffer cmd.Stderr = &stderr