@@ -130,19 +130,9 @@ var (
130130
131131func SetTargets (cfg * Config ) error {
132132 var err error
133- cfg .TargetOS , cfg .TargetVMArch , cfg .TargetArch , err = splitTarget (cfg .RawTarget )
134- if err != nil {
135- return err
136- }
137- cfg .Target , err = prog .GetTarget (cfg .TargetOS , cfg .TargetArch )
138- if err != nil {
139- return err
140- }
141- cfg .SysTarget = targets .Get (cfg .TargetOS , cfg .TargetVMArch )
142- if cfg .SysTarget == nil {
143- return fmt .Errorf ("unsupported OS/arch: %v/%v" , cfg .TargetOS , cfg .TargetVMArch )
144- }
145- return nil
133+ cfg .TargetOS , cfg .TargetVMArch , cfg .TargetArch , cfg .Target , cfg .SysTarget ,
134+ err = SplitTarget (cfg .RawTarget )
135+ return err
146136}
147137
148138func Complete (cfg * Config ) error {
@@ -402,21 +392,29 @@ func (cfg *Config) completeFocusAreas() error {
402392 return nil
403393}
404394
405- func splitTarget (target string ) (string , string , string , error ) {
406- if target == "" {
407- return "" , "" , "" , fmt .Errorf ("target is empty" )
395+ func SplitTarget (str string ) (os , vmarch , arch string , target * prog.Target , sysTarget * targets.Target , err error ) {
396+ if str == "" {
397+ err = fmt .Errorf ("target is empty" )
398+ return
408399 }
409- targetParts := strings .Split (target , "/" )
400+ targetParts := strings .Split (str , "/" )
410401 if len (targetParts ) != 2 && len (targetParts ) != 3 {
411- return "" , "" , "" , fmt .Errorf ("bad config param target" )
402+ err = fmt .Errorf ("bad config param target" )
403+ return
412404 }
413- os : = targetParts [0 ]
414- vmarch : = targetParts [1 ]
415- arch : = targetParts [1 ]
405+ os = targetParts [0 ]
406+ vmarch = targetParts [1 ]
407+ arch = targetParts [1 ]
416408 if len (targetParts ) == 3 {
417409 arch = targetParts [2 ]
418410 }
419- return os , vmarch , arch , nil
411+ sysTarget = targets .Get (os , vmarch )
412+ if sysTarget == nil {
413+ err = fmt .Errorf ("unsupported OS/arch: %v/%v" , os , vmarch )
414+ return
415+ }
416+ target , err = prog .GetTarget (os , arch )
417+ return
420418}
421419
422420func ParseEnabledSyscalls (target * prog.Target , enabled , disabled []string ,
0 commit comments