@@ -39,25 +39,7 @@ func (parser rootConfigParser) Parse(
3939 } else if metaRepoPath , pathErr := metaRepoFlag .GetString (flags ); pathErr != nil {
4040 return nil , pathErr
4141 } else {
42- metaRepoAdmin := svcfs .NewJsonMetaRepoAdmin (parser .version )
43- jsonMetaRepo := svcfs .NewJsonMetaRepo (metaRepoPath )
44- config := & rootCliConfig {
45- args : args ,
46- cmdFactory : use .NewCommandFactory ().
47- WithLocalRepositorySource (jsonMetaRepo ).
48- WithMetaDataAdmin (metaRepoAdmin ).
49- WithRemoteRepositorySource (jsonMetaRepo ),
50- debug : debug ,
51- flagSet : flags ,
52- inputLines : make ([]string , 0 ),
53- metaRepoPath : metaRepoPath ,
54- queryFactory : use .NewQueryFactory ().
55- WithLocalRepositorySource (jsonMetaRepo ).
56- WithMetaDataAdmin (metaRepoAdmin ).
57- WithRemoteRepositorySource (jsonMetaRepo ),
58- }
59-
60- return config , nil
42+ return parser .assemble (args , debug , flags , make ([]string , 0 ), metaRepoPath ), nil
6143 }
6244}
6345
@@ -80,36 +62,53 @@ func (parser rootConfigParser) ParseR(
8062 }
8163 }
8264
83- inputLines := make ([]string , 0 )
84- if readFromStdin {
85- scanner := bufio .NewScanner (stdin )
86- for scanner .Scan () {
87- line := scanner .Text ()
88- inputLines = append (inputLines , line )
89- }
90- if scanErr := scanner .Err (); scanErr != nil {
91- return nil , scanErr
92- }
65+ if ! readFromStdin {
66+ return parser .assemble (argsBeforeDash , debug , flags , make ([]string , 0 ), metaRepoPath ), nil
67+ } else if inputLines , scanErr := readLines (stdin ); scanErr != nil {
68+ return nil , scanErr
69+ } else {
70+ return parser .assemble (argsBeforeDash , debug , flags , inputLines , metaRepoPath ), nil
9371 }
72+ }
73+ }
9474
95- metaRepoAdmin := svcfs .NewJsonMetaRepoAdmin (parser .version )
96- jsonMetaRepo := svcfs .NewJsonMetaRepo (metaRepoPath )
97- config := & rootCliConfig {
98- args : argsBeforeDash ,
99- cmdFactory : use .NewCommandFactory ().
100- WithLocalRepositorySource (jsonMetaRepo ).
101- WithMetaDataAdmin (metaRepoAdmin ).
102- WithRemoteRepositorySource (jsonMetaRepo ),
103- debug : debug ,
104- flagSet : flags ,
105- inputLines : inputLines ,
106- metaRepoPath : metaRepoPath ,
107- queryFactory : use .NewQueryFactory ().
108- WithLocalRepositorySource (jsonMetaRepo ).
109- WithMetaDataAdmin (metaRepoAdmin ).
110- WithRemoteRepositorySource (jsonMetaRepo ),
111- }
75+ func (parser rootConfigParser ) assemble (
76+ args []string ,
77+ debug bool ,
78+ flags * pflag.FlagSet ,
79+ inputLines []string ,
80+ metaRepoPath string ,
81+ ) CliConfig {
82+ metaRepoAdmin := svcfs .NewJsonMetaRepoAdmin (parser .version )
83+ jsonMetaRepo := svcfs .NewJsonMetaRepo (metaRepoPath )
84+ return & rootCliConfig {
85+ args : args ,
86+ cmdFactory : use .NewCommandFactory ().
87+ WithLocalRepositorySource (jsonMetaRepo ).
88+ WithMetaDataAdmin (metaRepoAdmin ).
89+ WithRemoteRepositorySource (jsonMetaRepo ),
90+ debug : debug ,
91+ flagSet : flags ,
92+ inputLines : inputLines ,
93+ metaRepoPath : metaRepoPath ,
94+ queryFactory : use .NewQueryFactory ().
95+ WithLocalRepositorySource (jsonMetaRepo ).
96+ WithMetaDataAdmin (metaRepoAdmin ).
97+ WithRemoteRepositorySource (jsonMetaRepo ),
98+ }
99+ }
112100
113- return config , nil
101+ func readLines (stdin io.Reader ) ([]string , error ) {
102+ inputLines := make ([]string , 0 )
103+ scanner := bufio .NewScanner (stdin )
104+ for scanner .Scan () {
105+ line := scanner .Text ()
106+ inputLines = append (inputLines , line )
107+ }
108+
109+ if scanErr := scanner .Err (); scanErr != nil {
110+ return nil , scanErr
111+ } else {
112+ return inputLines , nil
114113 }
115114}
0 commit comments