@@ -473,6 +473,39 @@ func buildWithoutCustomCommands(modMode ModMode) bool {
473473 return shouldInstallDependencies
474474}
475475
476+ func buildWithCustomCommands (inst string ) {
477+ // write custom build commands into a script, then run it
478+ var (
479+ ext = ""
480+ header = ""
481+ footer = ""
482+ )
483+ if runtime .GOOS == "windows" {
484+ ext = ".cmd"
485+ header = "@echo on\n @prompt +$S\n "
486+ footer = "\n IF %ERRORLEVEL% NEQ 0 EXIT"
487+ } else {
488+ ext = ".sh"
489+ header = "#! /bin/bash\n set -xe +u\n "
490+ }
491+ script , err := ioutil .TempFile ("" , "go-build-command-*" + ext )
492+ if err != nil {
493+ log .Fatalf ("Unable to create temporary script holding custom build commands: %s\n " , err .Error ())
494+ }
495+ defer os .Remove (script .Name ())
496+ _ , err = script .WriteString (header + inst + footer )
497+ if err != nil {
498+ log .Fatalf ("Unable to write to temporary script holding custom build commands: %s\n " , err .Error ())
499+ }
500+ err = script .Close ()
501+ if err != nil {
502+ log .Fatalf ("Unable to close temporary script holding custom build commands: %s\n " , err .Error ())
503+ }
504+ os .Chmod (script .Name (), 0700 )
505+ log .Println ("Installing dependencies using custom build command." )
506+ util .RunCmd (exec .Command (script .Name ()))
507+ }
508+
476509func main () {
477510 if len (os .Args ) > 1 {
478511 usage ()
@@ -532,36 +565,7 @@ func main() {
532565 if inst == "" {
533566 shouldInstallDependencies = buildWithoutCustomCommands (modMode )
534567 } else {
535- // write custom build commands into a script, then run it
536- var (
537- ext = ""
538- header = ""
539- footer = ""
540- )
541- if runtime .GOOS == "windows" {
542- ext = ".cmd"
543- header = "@echo on\n @prompt +$S\n "
544- footer = "\n IF %ERRORLEVEL% NEQ 0 EXIT"
545- } else {
546- ext = ".sh"
547- header = "#! /bin/bash\n set -xe +u\n "
548- }
549- script , err := ioutil .TempFile ("" , "go-build-command-*" + ext )
550- if err != nil {
551- log .Fatalf ("Unable to create temporary script holding custom build commands: %s\n " , err .Error ())
552- }
553- defer os .Remove (script .Name ())
554- _ , err = script .WriteString (header + inst + footer )
555- if err != nil {
556- log .Fatalf ("Unable to write to temporary script holding custom build commands: %s\n " , err .Error ())
557- }
558- err = script .Close ()
559- if err != nil {
560- log .Fatalf ("Unable to close temporary script holding custom build commands: %s\n " , err .Error ())
561- }
562- os .Chmod (script .Name (), 0700 )
563- log .Println ("Installing dependencies using custom build command." )
564- util .RunCmd (exec .Command (script .Name ()))
568+ buildWithCustomCommands (inst )
565569 }
566570
567571 if modMode == ModVendor {
0 commit comments