1- using bagit . net . interfaces ;
2- using Microsoft . Extensions . DependencyInjection ;
1+ using Microsoft . Extensions . DependencyInjection ;
32using Spectre . Console ;
43using Spectre . Console . Cli ;
54using System . ComponentModel ;
@@ -26,49 +25,16 @@ public class Settings : CommandSettings
2625
2726 public override int Execute ( CommandContext context , Settings settings , CancellationToken cancellationToken )
2827 {
29-
30- if ( string . IsNullOrWhiteSpace ( settings . Directory ) )
28+ try
3129 {
32- AnsiConsole . MarkupLine ( "[red][bold]ERROR:[/][/]" ) ;
33- AnsiConsole . MarkupLine ( "[red]a directory to bag must be specified when creating a bag[/]\n " ) ;
34- BagitCLI . app . Run ( new string [ ] { "help" } , cancellationToken ) ;
35- return 1 ;
30+ var serviceProvider = ServiceConfigurator . BuildServiceProvider < Bagger > ( settings . logFile ) ;
31+ var bagger = serviceProvider . GetRequiredService < Bagger > ( ) ;
32+ bagger . CreateBag ( settings . Directory , settings . Algorithm , settings . logFile , cancellationToken ) ;
3633 }
37-
38- var bagPath = Path . GetFullPath ( settings . Directory ) ;
39- if ( ! Directory . Exists ( bagPath ) ) {
40- AnsiConsole . MarkupLine ( "[red][bold]ERROR:[/][/]" ) ;
41- AnsiConsole . MarkupLine ( $ "[red]the directory { bagPath } does not exist[/]\n ") ;
42- BagitCLI . app . Run ( new string [ ] { "help" } , cancellationToken ) ;
34+ catch ( Exception ex ) {
35+ AnsiConsole . MarkupLine ( $ "[red][bold]ERROR:[/] { ex . Message } ") ;
4336 return 1 ;
4437 }
45-
46- //get the algorithm
47- ChecksumAlgorithm algorithm ;
48- if ( string . IsNullOrWhiteSpace ( settings . Algorithm ) )
49- {
50- algorithm = ChecksumAlgorithm . SHA256 ;
51- } else if ( ChecksumAlgorithmMap . Algorithms . ContainsKey ( settings . Algorithm ) )
52- {
53- algorithm = ChecksumAlgorithmMap . Algorithms [ settings . Algorithm ] ;
54- } else
55- {
56- AnsiConsole . MarkupLine ( "[red][bold]ERROR:[/][/]" ) ;
57- AnsiConsole . MarkupLine ( $ "[red]checksum algorithm { settings . Algorithm } is not supported[/]\n ") ;
58- BagitCLI . app . Run ( new string [ ] { "help" } , cancellationToken ) ;
59- return 1 ;
60- }
61-
62- //get logging option
63- if ( ! string . IsNullOrWhiteSpace ( settings . logFile ) )
64- {
65- AnsiConsole . MarkupLine ( $ "bagit.net.cli v{ Bagit . VERSION } ") ;
66- AnsiConsole . MarkupLine ( $ "Logging to { settings . logFile } ") ;
67- }
68-
69- var serviceProvider = ServiceConfigurator . BuildServiceProvider < Bagger > ( ) ;
70- var bagger = serviceProvider . GetRequiredService < Bagger > ( ) ;
71- bagger . CreateBag ( bagPath , algorithm ) ;
7238 return 0 ;
7339 }
7440}
0 commit comments