about summary refs log tree commit diff
path: root/pkgs/development/mobile/titaniumenv/build-app.nix
diff options
context:
space:
mode:
authorSander van der Burg <svanderburg@gmail.com>2018-01-09 13:24:30 +0100
committerSander van der Burg <svanderburg@gmail.com>2018-01-09 13:24:30 +0100
commita18da9b6895fa48039fbdca88ada1c3be123e7e2 (patch)
treee65891646eb7345ae9eb019d5118c7f49aeed2f5 /pkgs/development/mobile/titaniumenv/build-app.nix
parent7a891ebbdd2ea069f6fcb5d37327e3999eb8cb7e (diff)
titaniumenv: add hack to reduce keychain blocking problems
Diffstat (limited to 'pkgs/development/mobile/titaniumenv/build-app.nix')
-rw-r--r--pkgs/development/mobile/titaniumenv/build-app.nix14
1 files changed, 13 insertions, 1 deletions
diff --git a/pkgs/development/mobile/titaniumenv/build-app.nix b/pkgs/development/mobile/titaniumenv/build-app.nix
index 4b5d2f45418bd..660f1bbccabbb 100644
--- a/pkgs/development/mobile/titaniumenv/build-app.nix
+++ b/pkgs/development/mobile/titaniumenv/build-app.nix
@@ -19,6 +19,7 @@ let
   deleteKeychain = ''
     security default-keychain -s login.keychain
     security delete-keychain $keychainName
+    rm -f $HOME/lock-keychain
   '';
   
   # On macOS, the java executable shows an -unoffical postfix in the version
@@ -131,7 +132,18 @@ stdenv.mkDerivation {
               then
                   ln -s ${titaniumsdk}/modules modules
               fi
-              
+
+              # Take precautions to prevent concurrent builds blocking the keychain
+              while [ -f $HOME/lock-keychain ]
+              do
+                  echo "Keychain locked, waiting for a couple of seconds, or remove $HOME/lock-keychain to unblock..."
+                  sleep 3
+              done
+
+              touch $HOME/lock-keychain
+
+              security default-keychain -s $keychainName
+
               # Do the actual build
               titanium build --config-file $TMPDIR/config.json --force --no-colors --platform ios --target dist-adhoc --pp-uuid $provisioningId --distribution-name "${iosCertificateName}" --keychain $HOME/Library/Keychains/$keychainName-db --device-family universal --ios-version ${iosVersion} --output-dir $out