From: Hans-Christoph Steiner Date: Tue, 14 Jun 2016 14:34:13 +0000 (+0200) Subject: buildserver: handle loops in bash, not ruby, to save memory X-Git-Tag: 0.7.0~51^2~2 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=a4615b1def0ae9874211769975136f006abc4867;p=fdroidserver.git buildserver: handle loops in bash, not ruby, to save memory Apparently, ruby is quite a memory hog when it forks. I've been getting errors like this with ./makebuildserver: Errno::ENOMEM - script[add_btools_17] (android-sdk::default line 72) had an error: Errno::ENOMEM: Cannot allocate memory - fork(2) So instead of looping in ruby and forking for each loop, handle the looping in the bash script, so ruby is just calling a single bash script. --- diff --git a/buildserver/cookbooks/android-sdk/recipes/default.rb b/buildserver/cookbooks/android-sdk/recipes/default.rb index 82d68972..3be497f1 100644 --- a/buildserver/cookbooks/android-sdk/recipes/default.rb +++ b/buildserver/cookbooks/android-sdk/recipes/default.rb @@ -33,20 +33,16 @@ execute "add-android-sdk-path" do not_if "grep PATH-SDK /home/#{user}/.bsenv" end -%w{ - platform-tools - extra-android-m2repository -}.each do |pkg| - script "add_pkg_#{pkg}" do - interpreter "bash" - user user - code " - #{sdk_loc}/tools/android update sdk --no-ui -a -t #{pkg} <