-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProgram.fs
32 lines (28 loc) · 1.35 KB
/
Program.fs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
open CommandLine
open System.Diagnostics
type options = {
[<Option('p', "path", Required = false, HelpText = "Bin folder for ffmpeg")>] binfolder : string;
[<Option('f', "folder", Required = true, HelpText = "Folder with input files")>] folder : string;
[<Option('i', "input", Required = true, HelpText = "Extension of inputfiles")>] input : string;
[<Option('c', "codec", Required = true, HelpText = "Codec used for output file")>] codec : string;
[<Option('o', "output", Required = true, HelpText = "Output folder")>] output : string;
}
[<EntryPoint>]
let main argv =
let result = CommandLine.Parser.Default.ParseArguments<options>(argv)
match result with
| :? Parsed<options> as parsed ->
printfn "==== Starting 'Media Converter' ===="
#if DEBUG
let stopWatch = Stopwatch.StartNew()
#endif
ConversorService.Run parsed.Value.folder parsed.Value.output parsed.Value.input parsed.Value.codec
#if DEBUG
let elapsedTime = stopWatch.Elapsed
let formattedTime = sprintf "%02d:%02d:%02d:%03d" elapsedTime.Hours elapsedTime.Minutes elapsedTime.Seconds elapsedTime.Milliseconds
printfn "Elapsed time: %s" formattedTime
#endif
| :? NotParsed<options> as notParsed ->
printfn "==== Parameters not found ===="
printfn "==== Finished 'Media Converter' ===="
0