1
1
{-# LANGUAGE OverloadedRecordDot #-}
2
2
{-# LANGUAGE QuasiQuotes #-}
3
+ {-# OPTIONS_GHC -Wno-unrecognised-pragmas #-}
4
+
5
+ {-# HLINT ignore "Replace case with maybe" #-}
3
6
4
7
module Main where
5
8
@@ -22,7 +25,8 @@ import Protolude (
22
25
)
23
26
import Protolude qualified as P
24
27
25
- import Data.Text as T (isInfixOf , pack , unpack )
28
+ import Data.Text (pack , unpack )
29
+ import Data.Text qualified as T
26
30
import Data.Yaml (decodeFileEither , prettyPrintParseException )
27
31
import System.Console.Docopt as Docopt (
28
32
Arguments ,
@@ -48,12 +52,15 @@ import System.Directory (
48
52
)
49
53
import System.FilePath ((</>) )
50
54
55
+ import Control.Arrow ((>>>) )
51
56
import Lib (loadAndStart )
52
57
import Rename (getRenamingBatches )
53
58
import Types (
54
59
Config ,
55
60
RenameMode (Even , Odd , Sequential ),
56
61
SortOrder (Ascending , Descending ),
62
+ TransformBackend (HipBackend , ImageMagickBackend , SimpleCVBackend ),
63
+ transformBackendFlag ,
57
64
)
58
65
59
66
@@ -66,9 +73,24 @@ getArgOrExit = getArgOrExitWith patterns
66
73
67
74
68
75
execWithArgs :: Config -> [[Char ]] -> IO ()
69
- execWithArgs config cliArgs = do
76
+ execWithArgs confFromFile cliArgs = do
70
77
args <- parseArgsOrExit patterns cliArgs
71
78
79
+ let config = case args `getArg` longOption " backend" of
80
+ Nothing -> confFromFile
81
+ Just backend ->
82
+ confFromFile
83
+ { transformBackendFlag =
84
+ backend
85
+ & ( T. pack
86
+ >>> T. toLower
87
+ >>> \ case
88
+ " hip" -> HipBackend
89
+ " imagemagick" -> ImageMagickBackend
90
+ _ -> SimpleCVBackend
91
+ )
92
+ }
93
+
72
94
when (args `isPresent` command " gui" ) $ do
73
95
loadAndStart config Nothing
74
96
0 commit comments