55 "strconv"
66 "strings"
77
8- "github.com/covexo/devspace/pkg/devspace/config"
8+ "github.com/covexo/devspace/pkg/devspace/config/configutil "
99 "github.com/covexo/devspace/pkg/devspace/config/v1"
1010 "github.com/covexo/devspace/pkg/util/log"
1111 "github.com/spf13/cobra"
@@ -116,10 +116,10 @@ func init() {
116116
117117// RunAddSync executes the add sync command logic
118118func (cmd * AddCmd ) RunAddSync (cobraCmd * cobra.Command , args []string ) {
119- loadConfig ( & cmd . workdir , & cmd . privateConfig , & cmd . dsConfig )
119+ config := configutil . GetConfig ( false )
120120
121121 if cmd .syncFlags .Selector == "" {
122- cmd .syncFlags .Selector = "release=" + cmd . privateConfig .Release .Name
122+ cmd .syncFlags .Selector = "release=" + * config . DevSpace .Release .Name
123123 }
124124
125125 labelSelectorMap , err := parseSelectors (cmd .syncFlags .Selector )
@@ -128,25 +128,26 @@ func (cmd *AddCmd) RunAddSync(cobraCmd *cobra.Command, args []string) {
128128 log .Fatalf ("Error parsing selectors: %s" , err .Error ())
129129 }
130130
131- excludedPaths := make ([]string , 0 , 0 )
131+ excludedPaths := make ([]* string , 0 , 0 )
132132
133133 if cmd .syncFlags .ExcludedPaths != "" {
134- excludedPaths = strings .Split (cmd .syncFlags .ExcludedPaths , "," )
134+ excludedPathStrings : = strings .Split (cmd .syncFlags .ExcludedPaths , "," )
135135
136- for k , v := range excludedPaths {
137- excludedPaths [k ] = strings .TrimSpace (v )
136+ for _ , v := range excludedPathStrings {
137+ excludedPath := strings .TrimSpace (v )
138+ excludedPaths = append (excludedPaths , & excludedPath )
138139 }
139140 }
140141
141- cmd . dsConfig . SyncPaths = append (cmd . dsConfig . SyncPaths , & v1.SyncPath {
142- ResourceType : cmd .syncFlags .ResourceType ,
142+ config . DevSpace . Sync = append (config . DevSpace . Sync , & v1.SyncConfig {
143+ ResourceType : configutil . String ( cmd .syncFlags .ResourceType ) ,
143144 LabelSelector : labelSelectorMap ,
144- ContainerPath : cmd .syncFlags .ContainerPath ,
145- LocalSubPath : cmd .syncFlags .LocalPath ,
145+ ContainerPath : configutil . String ( cmd .syncFlags .ContainerPath ) ,
146+ LocalSubPath : configutil . String ( cmd .syncFlags .LocalPath ) ,
146147 ExcludeRegex : excludedPaths ,
147148 })
148149
149- err = config .SaveConfig (cmd . dsConfig )
150+ err = configutil .SaveConfig ()
150151
151152 if err != nil {
152153 log .Fatalf ("Couldn't save config file: %s" , err .Error ())
@@ -155,10 +156,10 @@ func (cmd *AddCmd) RunAddSync(cobraCmd *cobra.Command, args []string) {
155156
156157// RunAddPort executes the add port command logic
157158func (cmd * AddCmd ) RunAddPort (cobraCmd * cobra.Command , args []string ) {
158- loadConfig ( & cmd . workdir , & cmd . privateConfig , & cmd . dsConfig )
159+ config := configutil . GetConfig ( false )
159160
160161 if cmd .portFlags .Selector == "" {
161- cmd .portFlags .Selector = "release=" + cmd . privateConfig .Release .Name
162+ cmd .portFlags .Selector = "release=" + * config . DevSpace .Release .Name
162163 }
163164
164165 labelSelectorMap , err := parseSelectors (cmd .portFlags .Selector )
@@ -175,37 +176,39 @@ func (cmd *AddCmd) RunAddPort(cobraCmd *cobra.Command, args []string) {
175176
176177 cmd .insertOrReplacePortMapping (labelSelectorMap , portMappings )
177178
178- err = config .SaveConfig (cmd . dsConfig )
179+ err = configutil .SaveConfig ()
179180
180181 if err != nil {
181182 log .Fatalf ("Couldn't save config file: %s" , err .Error ())
182183 }
183184}
184185
185- func (cmd * AddCmd ) insertOrReplacePortMapping (labelSelectorMap map [string ]string , portMappings []* v1.PortMapping ) {
186+ func (cmd * AddCmd ) insertOrReplacePortMapping (labelSelectorMap map [string ]* string , portMappings []* v1.PortMapping ) {
187+ config := configutil .GetConfig (false )
188+
186189 // Check if we should add to existing port mapping
187- for _ , v := range cmd . dsConfig .PortForwarding {
188- if v .ResourceType == cmd .portFlags .ResourceType && isMapEqual (v .LabelSelector , labelSelectorMap ) {
190+ for _ , v := range config . DevSpace .PortForwarding {
191+ if * v .ResourceType == cmd .portFlags .ResourceType && isMapEqual (v .LabelSelector , labelSelectorMap ) {
189192 v .PortMappings = append (v .PortMappings , portMappings ... )
190193
191194 return
192195 }
193196 }
194197
195- cmd . dsConfig .PortForwarding = append (cmd . dsConfig .PortForwarding , & v1.PortForwarding {
196- ResourceType : cmd .portFlags .ResourceType ,
198+ config . DevSpace .PortForwarding = append (config . DevSpace .PortForwarding , & v1.PortForwardingConfig {
199+ ResourceType : configutil . String ( cmd .portFlags .ResourceType ) ,
197200 LabelSelector : labelSelectorMap ,
198201 PortMappings : portMappings ,
199202 })
200203}
201204
202- func isMapEqual (map1 map [string ]string , map2 map [string ]string ) bool {
205+ func isMapEqual (map1 map [string ]* string , map2 map [string ]* string ) bool {
203206 if len (map1 ) != len (map2 ) {
204207 return false
205208 }
206209
207210 for k , v := range map1 {
208- if map2 [k ] != v {
211+ if * map2 [k ] != * v {
209212 return false
210213 }
211214 }
@@ -214,8 +217,6 @@ func isMapEqual(map1 map[string]string, map2 map[string]string) bool {
214217}
215218
216219func parsePortMappings (portMappingsString string ) ([]* v1.PortMapping , error ) {
217- var err error
218-
219220 portMappings := make ([]* v1.PortMapping , 0 , 1 )
220221 portMappingsSplitted := strings .Split (portMappingsString , "," )
221222
@@ -227,27 +228,25 @@ func parsePortMappings(portMappingsString string) ([]*v1.PortMapping, error) {
227228 }
228229
229230 portMappingStruct := & v1.PortMapping {}
231+ firstPort , err := strconv .Atoi (portMapping [0 ])
230232
231- if len (portMapping ) == 1 {
232- portMappingStruct .LocalPort , err = strconv .Atoi (portMapping [0 ])
233+ if err != nil {
234+ return nil , err
235+ }
233236
234- if err != nil {
235- return nil , err
236- }
237+ if len (portMapping ) == 1 {
238+ portMappingStruct .LocalPort = & firstPort
237239
238240 portMappingStruct .RemotePort = portMappingStruct .LocalPort
239241 } else {
240- portMappingStruct .LocalPort , err = strconv .Atoi (portMapping [0 ])
241-
242- if err != nil {
243- return nil , err
244- }
242+ portMappingStruct .LocalPort = & firstPort
245243
246- portMappingStruct . RemotePort , err = strconv .Atoi (portMapping [1 ])
244+ secondPort , err : = strconv .Atoi (portMapping [1 ])
247245
248246 if err != nil {
249247 return nil , err
250248 }
249+ portMappingStruct .RemotePort = & secondPort
251250 }
252251
253252 portMappings = append (portMappings , portMappingStruct )
@@ -256,23 +255,23 @@ func parsePortMappings(portMappingsString string) ([]*v1.PortMapping, error) {
256255 return portMappings , nil
257256}
258257
259- func parseSelectors (selector string ) (map [string ]string , error ) {
260- selectorMap := make (map [string ]string )
258+ func parseSelectors (selectorString string ) (map [string ]* string , error ) {
259+ selectorMap := make (map [string ]* string )
261260
262- if selector == "" {
261+ if selectorString == "" {
263262 return selectorMap , nil
264263 }
265264
266- selectors := strings .Split (selector , "," )
265+ selectors := strings .Split (selectorString , "," )
267266
268267 for _ , v := range selectors {
269268 keyValue := strings .Split (v , "=" )
270269
271270 if len (keyValue ) != 2 {
272- return nil , fmt .Errorf ("Wrong selector format: %s" , selector )
271+ return nil , fmt .Errorf ("Wrong selector format: %s" , selectorString )
273272 }
274-
275- selectorMap [strings .TrimSpace (keyValue [0 ])] = strings . TrimSpace ( keyValue [ 1 ])
273+ selector := strings . TrimSpace ( keyValue [ 1 ])
274+ selectorMap [strings .TrimSpace (keyValue [0 ])] = & selector
276275 }
277276
278277 return selectorMap , nil
0 commit comments