Skip to content

Commit d69cec8

Browse files
committed
defer the running of bundle install in the rails scanner to the callback
1 parent 1e91c27 commit d69cec8

File tree

1 file changed

+11
-23
lines changed

1 file changed

+11
-23
lines changed

scanner/rails.go

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -57,18 +57,6 @@ func configureRails(sourceDir string, config *ScannerConfig) (*SourceInfo, error
5757
}
5858
}
5959

60-
// attempt to install bundle before proceeding
61-
args := []string{"install"}
62-
63-
if checksPass(sourceDir, fileExists("Gemfile.lock")) {
64-
args = append(args, "--quiet")
65-
}
66-
67-
cmd := exec.Command(bundle, args...)
68-
cmd.Stdin = nil
69-
cmd.Stdout = os.Stdout
70-
cmd.Stderr = os.Stderr
71-
7260
s := &SourceInfo{
7361
Family: "Rails",
7462
Callback: RailsCallback,
@@ -332,24 +320,24 @@ func RailsCallback(appName string, srcInfo *SourceInfo, plan *plan.LaunchPlan, f
332320
if pendingError != nil {
333321
pendingError = errors.Wrap(pendingError, "Failed to add dockerfile-rails gem")
334322
} else {
335-
cmd = exec.Command(bundle, "install", "--quiet")
336-
cmd.Stdin = nil
337-
cmd.Stdout = os.Stdout
338-
cmd.Stderr = os.Stderr
339-
340-
pendingError = cmd.Run()
341-
if pendingError != nil {
342-
pendingError = errors.Wrap(pendingError, "Failed to install dockerfile-rails gem")
343-
} else {
344-
generatorInstalled = true
345-
}
323+
generatorInstalled = true
346324
}
347325
}
348326
} else {
349327
// proceed using the already installed gem
350328
generatorInstalled = true
351329
}
352330

331+
cmd := exec.Command(bundle, "install", "--quiet")
332+
cmd.Stdin = nil
333+
cmd.Stdout = os.Stdout
334+
cmd.Stderr = os.Stderr
335+
336+
err = cmd.Run()
337+
if err != nil {
338+
return errors.Wrap(pendingError, "Failed to install bundle, exiting")
339+
}
340+
353341
// ensure Gemfile.lock includes the x86_64-linux platform
354342
if out, err := exec.Command(bundle, "platform").Output(); err == nil {
355343
if !strings.Contains(string(out), "x86_64-linux") {

0 commit comments

Comments
 (0)