1+ mod args;
2+
13use std:: process;
2- use clap:: { Parser , ValueEnum } ;
4+ use clap:: { Parser } ;
35use colored:: Colorize ;
46use postgres:: Error ;
57
68use crate :: { compare, db} ;
7- use crate :: compare:: report:: PrivilegeComparison :: { PrivilegeAdded , PrivilegeMaintained , PrivilegeRemoved } ;
8- use crate :: compare:: report:: { HasChanges , TableColumnReport , TableConstraintReport , SchemaReport , RoutineReport , SequenceReport , ViewReport , PropertyReport , PrivilegeReport , TableReport , TableTriggerReport } ;
9- use crate :: compare:: report:: PropertyComparison :: { PropertyChanged , PropertyUnchanged } ;
10- use crate :: compare:: report:: RoutineComparison :: { RoutineAdded , RoutineMaintained , RoutineRemoved } ;
11- use crate :: compare:: report:: SchemaComparison :: { SchemaAdded , SchemaMaintained , SchemaMissing , SchemaRemoved } ;
12- use crate :: compare:: report:: SequenceComparison :: { SequenceAdded , SequenceMaintained , SequenceRemoved } ;
13- use crate :: compare:: report:: TableColumnComparison :: { ColumnAdded , ColumnMaintained , ColumnRemoved } ;
14- use crate :: compare:: report:: TableComparison :: { TableAdded , TableMaintained , TableRemoved } ;
15- use crate :: compare:: report:: TableConstraintComparison :: { ConstraintAdded , ConstraintMaintained , ConstraintRemoved } ;
16- use crate :: compare:: report:: TableTriggerComparison :: { TriggerAdded , TriggerMaintained , TriggerRemoved } ;
17- use crate :: compare:: report:: ViewComparison :: { ViewMaintained } ;
9+ use crate :: cli:: args:: { Args , Colouring :: Always , Colouring :: Never } ;
10+ use crate :: compare:: report:: { HasChanges , Report } ;
11+ use crate :: compare:: report:: privilege:: PrivilegeComparison ;
12+ use crate :: compare:: report:: privilege:: PrivilegeComparison :: { PrivilegeAdded , PrivilegeMaintained , PrivilegeRemoved } ;
13+ use crate :: compare:: report:: property:: PropertyComparison ;
14+ use crate :: compare:: report:: property:: PropertyComparison :: { PropertyChanged , PropertyUnchanged } ;
15+ use crate :: compare:: report:: routine:: RoutineComparison ;
16+ use crate :: compare:: report:: routine:: RoutineComparison :: { RoutineAdded , RoutineMaintained , RoutineRemoved } ;
17+ use crate :: compare:: report:: schema:: SchemaComparison ;
18+ use crate :: compare:: report:: schema:: SchemaComparison :: { SchemaAdded , SchemaMaintained , SchemaMissing , SchemaRemoved } ;
19+ use crate :: compare:: report:: sequence:: SequenceComparison ;
20+ use crate :: compare:: report:: sequence:: SequenceComparison :: { SequenceAdded , SequenceMaintained , SequenceRemoved } ;
21+ use crate :: compare:: report:: table:: TableComparison ;
22+ use crate :: compare:: report:: table:: TableComparison :: { TableAdded , TableMaintained , TableRemoved } ;
23+ use crate :: compare:: report:: table_column:: TableColumnComparison ;
24+ use crate :: compare:: report:: table_column:: TableColumnComparison :: { ColumnAdded , ColumnMaintained , ColumnRemoved } ;
25+ use crate :: compare:: report:: table_constraint:: TableConstraintComparison ;
26+ use crate :: compare:: report:: table_constraint:: TableConstraintComparison :: { ConstraintAdded , ConstraintMaintained , ConstraintRemoved } ;
27+ use crate :: compare:: report:: table_trigger:: TableTriggerComparison :: { TriggerAdded , TriggerMaintained , TriggerRemoved } ;
28+ use crate :: compare:: report:: table_trigger:: { TableTriggerComparison } ;
29+ use crate :: compare:: report:: view:: ViewComparison ;
30+ use crate :: compare:: report:: view:: ViewComparison :: ViewMaintained ;
1831
1932const COLOUR_ADDED : colored:: Color = colored:: Color :: Green ;
2033const COLOUR_CHANGED : colored:: Color = colored:: Color :: Yellow ;
@@ -30,8 +43,8 @@ impl CLI {
3043 let args = Args :: parse ( ) ;
3144
3245 match args. color {
33- Colouring :: Always => colored:: control:: set_override ( true ) ,
34- Colouring :: Never => colored:: control:: set_override ( false ) ,
46+ Always => colored:: control:: set_override ( true ) ,
47+ Never => colored:: control:: set_override ( false ) ,
3548 _ => ( ) ,
3649 }
3750
@@ -57,7 +70,7 @@ impl CLI {
5770 process:: exit ( differences) ;
5871 }
5972
60- fn render_schema_report ( & self , report : SchemaReport ) -> i32 {
73+ fn render_schema_report ( & self , report : Report < SchemaComparison > ) -> i32 {
6174 let mut differences = 0 ;
6275
6376 for schema in & report. entries {
@@ -104,7 +117,7 @@ impl CLI {
104117 differences
105118 }
106119
107- fn render_property_report ( & self , report : & PropertyReport , depth : usize ) -> i32 {
120+ fn render_property_report ( & self , report : & Report < PropertyComparison > , depth : usize ) -> i32 {
108121 let mut differences = 0 ;
109122 let margin = str:: repeat ( " " , depth) ;
110123
@@ -127,7 +140,7 @@ impl CLI {
127140 differences
128141 }
129142
130- fn render_privilege_report ( & self , report : & PrivilegeReport , depth : usize ) -> i32 {
143+ fn render_privilege_report ( & self , report : & Report < PrivilegeComparison > , depth : usize ) -> i32 {
131144 let mut differences = 0 ;
132145 let margin = str:: repeat ( " " , depth) ;
133146
@@ -156,7 +169,7 @@ impl CLI {
156169 differences
157170 }
158171
159- fn render_routine_report ( self : & Self , report : & RoutineReport ) -> i32 {
172+ fn render_routine_report ( & self , report : & Report < RoutineComparison > ) -> i32 {
160173 let mut differences = 0 ;
161174
162175 for routine in & report. entries {
@@ -195,7 +208,7 @@ impl CLI {
195208 differences
196209 }
197210
198- fn render_sequence_report ( & self , report : & SequenceReport ) -> i32 {
211+ fn render_sequence_report ( & self , report : & Report < SequenceComparison > ) -> i32 {
199212 let mut differences = 0 ;
200213
201214 for sequence in & report. entries {
@@ -232,7 +245,7 @@ impl CLI {
232245 differences
233246 }
234247
235- fn render_table_report ( & self , report : & TableReport ) -> i32 {
248+ fn render_table_report ( & self , report : & Report < TableComparison > ) -> i32 {
236249 let mut differences = 0 ;
237250
238251 for table in & report. entries {
@@ -273,7 +286,7 @@ impl CLI {
273286 differences
274287 }
275288
276- fn render_table_column_report ( & self , report : & TableColumnReport ) -> i32 {
289+ fn render_table_column_report ( & self , report : & Report < TableColumnComparison > ) -> i32 {
277290 let mut differences = 0 ;
278291
279292 for column in & report. entries {
@@ -311,7 +324,7 @@ impl CLI {
311324 differences
312325 }
313326
314- fn render_table_constraint_report ( & self , report : & TableConstraintReport ) -> i32 {
327+ fn render_table_constraint_report ( & self , report : & Report < TableConstraintComparison > ) -> i32 {
315328 let mut differences = 0 ;
316329
317330 for constraint in & report. entries {
@@ -348,7 +361,7 @@ impl CLI {
348361 differences
349362 }
350363
351- fn render_table_trigger_report ( & self , report : & TableTriggerReport ) -> i32 {
364+ fn render_table_trigger_report ( & self , report : & Report < TableTriggerComparison > ) -> i32 {
352365 let mut differences = 0 ;
353366
354367 for trigger in & report. entries {
@@ -385,7 +398,7 @@ impl CLI {
385398 differences
386399 }
387400
388- fn render_view_report ( & self , report : & ViewReport ) -> i32 {
401+ fn render_view_report ( & self , report : & Report < ViewComparison > ) -> i32 {
389402 let mut differences = 0 ;
390403
391404 for view in & report. entries {
@@ -410,38 +423,3 @@ impl CLI {
410423 differences
411424 }
412425}
413-
414- #[ derive( Parser , Debug ) ]
415- #[ command( version, about, long_about = None ) ]
416- pub struct Args {
417- #[ arg( short, long, short = 'l' , help = "The left database URL" ) ]
418- left : String ,
419-
420- #[ arg( short, long, short = 'r' , help = "The right database URL" ) ]
421- right : String ,
422-
423- #[ arg( short, long, required = true , short = 's' , help = "Schema to compare" ) ]
424- schema : Vec < String > ,
425-
426- #[ arg( short, long, short = 'w' , help = "Ignore routine whitespace differences" ) ]
427- ignore_whitespace : bool ,
428-
429- #[ arg( short, long, short = 'o' , help = "Ignore column ordering differences" ) ]
430- ignore_column_ordinal : bool ,
431-
432- #[ arg( short, long, short = 'p' , help = "Ignore privilege changes" ) ]
433- ignore_privileges : bool ,
434-
435- #[ arg( short, long, short = 'v' , help = "Show matches" ) ]
436- verbose : bool ,
437-
438- #[ arg( short, long, short = 'c' , alias = "colour" , help = "Use colour" , default_value = "auto" ) ]
439- color : Colouring ,
440- }
441-
442- #[ derive( Copy , Clone , PartialEq , Eq , PartialOrd , Ord , ValueEnum , Debug ) ]
443- enum Colouring {
444- Auto ,
445- Always ,
446- Never ,
447- }
0 commit comments