reanimate-0.4.2.0: src/Reanimate/Driver/Magick.hs
module Reanimate.Driver.Magick
( magickCmd
) where
import System.IO.Unsafe (unsafePerformIO)
import System.Directory (findExecutable)
-- |The name of the ImageMagick command. On Unix-like operating systems, the
-- command \'convert\' does not conflict with the name of other commands. On
-- Windows, ImageMagick version 7 is readily available, the command \'magick\'
-- should be present, and is preferred over \'convert\'. If it is not present,
-- \'convert\' is assumed to be the relevant command.
magickCmd :: String
-- The use of 'unsafeperformIO' is justified on the basis that if \'magick\' is
-- found once, it will always be present.
magickCmd = unsafePerformIO $ do
mPath <- findExecutable "magick"
pure $ maybe "convert" (const "magick") mPath