@@ -3,15 +3,15 @@ module Main where
3
3
import MyLib (someFunc )
4
4
import Options.Applicative
5
5
6
- data Sample = Sample
6
+ data BuildAssetArgs = BuildAssetArgs
7
7
{ prefix :: String ,
8
8
src :: String ,
9
9
dst :: String
10
10
}
11
11
12
- sample :: Parser Sample
13
- sample =
14
- Sample
12
+ buildAssetParser :: Parser BuildAssetArgs
13
+ buildAssetParser =
14
+ BuildAssetArgs
15
15
<$> strOption
16
16
( long " prefix"
17
17
<> value " "
@@ -26,18 +26,64 @@ sample =
26
26
<> help " path to static directory"
27
27
)
28
28
29
- greet :: Sample -> IO ()
30
- greet (Sample prefix src dst) = do
29
+ buildAssetCommand :: ParserInfo BuildAssetArgs
30
+ buildAssetCommand =
31
+ info
32
+ (buildAssetParser <**> helper)
33
+ ( fullDesc
34
+ <> progDesc " Import answers-db into answers static asset"
35
+ <> header " Import answers-db into answers static asset"
36
+ )
37
+
38
+ data SplitMatlabMarkdownArgs = SplitMatlabMarkdownArgs FilePath FilePath
39
+
40
+ splitMatlabMarkdownParser :: Parser SplitMatlabMarkdownArgs
41
+ splitMatlabMarkdownParser =
42
+ SplitMatlabMarkdownArgs
43
+ <$> strOption
44
+ ( long " src"
45
+ <> help " path to the markdown file that is exported from MATLAB"
46
+ )
47
+ <*> strOption
48
+ ( long " dst"
49
+ <> help " path to a directory"
50
+ )
51
+
52
+ splitMatlabMarkdownCommand :: ParserInfo SplitMatlabMarkdownArgs
53
+ splitMatlabMarkdownCommand =
54
+ info
55
+ (splitMatlabMarkdownParser <**> helper)
56
+ ( fullDesc
57
+ <> progDesc " Build assets from a markdown file exported from MATLAB"
58
+ <> header " Build assets from a markdown file exported from MATLAB"
59
+ )
60
+
61
+ data Args = BuildAssets BuildAssetArgs | SplitMatlabMarkdown SplitMatlabMarkdownArgs
62
+
63
+ -- data Args = Args { commandArgs :: CommandArgs }
64
+
65
+ argsParser :: Parser Args
66
+ argsParser =
67
+ hsubparser
68
+ ( command " build-assets" (BuildAssets <$> buildAssetCommand)
69
+ <> command " split-matlab-markdown" (SplitMatlabMarkdown <$> splitMatlabMarkdownCommand)
70
+ )
71
+
72
+ greet :: Args -> IO ()
73
+ greet (BuildAssets (BuildAssetArgs prefix src dst)) = do
31
74
_ <- someFunc prefix src dst
32
75
return ()
76
+ greet (SplitMatlabMarkdown (SplitMatlabMarkdownArgs src dst)) = do
77
+ return ()
33
78
34
79
main :: IO ()
35
- main = greet =<< execParser opts
36
- where
37
- opts =
38
- info
39
- (sample <**> helper)
40
- ( fullDesc
41
- <> progDesc " import answers-db into answers static asset"
42
- <> header " what is header?"
43
- )
80
+ main =
81
+ greet
82
+ =<< execParser
83
+ ( info
84
+ (argsParser <**> helper)
85
+ ( fullDesc
86
+ <> progDesc " Collection of utility functions for the Answers web app"
87
+ <> header " Collection of utility functions for the Answers web app"
88
+ )
89
+ )
0 commit comments