@@ -2,17 +2,71 @@ pub mod commands;
22pub mod flags;
33
44use crate :: commands:: commands:: { Command , Cover } ;
5+ use archive:: ArchiveData ;
56use clap:: Parser ;
7+ use clean:: CleanData ;
8+ use list:: ListData ;
9+ use restore:: RestoreData ;
10+ use schedule:: ScheduleData ;
11+ use sync:: SyncData ;
612
713fn handle_commands ( ) {
814 let cover = Cover :: parse ( ) ;
915 match cover. command {
10- Command :: Sync ( _s) => println ! ( "Sync data" ) ,
11- Command :: Archive ( _a) => println ! ( "Archive data" ) ,
12- Command :: Restore ( _r) => println ! ( "Restore data" ) ,
13- Command :: Schedule ( _s) => println ! ( "Schedule data" ) ,
14- Command :: List ( _l) => println ! ( "List data" ) ,
15- Command :: Clean ( _c) => println ! ( "Clean data" ) ,
16+ Command :: Sync ( s) => {
17+ let sync_data = SyncData {
18+ source : s. source ,
19+ destination : s. destination ,
20+ incremental : s. incremental ,
21+ delete : s. delete ,
22+ dry_run : s. dry_run ,
23+ verbose : s. verbose ,
24+ hash : s. hash ,
25+ } ;
26+ sync_data. sync_options ( ) ;
27+ }
28+ Command :: Archive ( a) => {
29+ let archive_data = ArchiveData {
30+ zip : a. zip ,
31+ tar : a. tar ,
32+ encrypt : a. encrypt ,
33+ timestamp : a. timestamp ,
34+ } ;
35+ archive_data. archive_options ( ) ;
36+ }
37+ Command :: Restore ( r) => {
38+ let restore_data = RestoreData {
39+ overwrite : r. overwrite ,
40+ to : r. to ,
41+ select : r. select ,
42+ } ;
43+ restore_data. restore_options ( ) ;
44+ }
45+ Command :: Schedule ( s) => {
46+ let schedule_data = ScheduleData {
47+ daily : s. daily ,
48+ weekly : s. weekly ,
49+ interval : s. interval ,
50+ command : s. command ,
51+ } ;
52+ schedule_data. schedule_options ( ) ;
53+ }
54+ Command :: List ( l) => {
55+ let list_data = ListData {
56+ archives : l. archives ,
57+ schedules : l. schedules ,
58+ details : l. details ,
59+ } ;
60+ list_data. list_options ( ) ;
61+ }
62+ Command :: Clean ( c) => {
63+ let clean_data = CleanData {
64+ keep_last : c. keep_last ,
65+ older_than : c. older_than ,
66+ dry_run : c. dry_run ,
67+ } ;
68+ clean_data. clean_options ( ) ;
69+ }
1670 }
1771}
1872
0 commit comments