mono.sh 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #!/bin/bash
  2. set -ex
  3. RETCODE=$(fw_exists $IROOT/mono.installed)
  4. [ ! "$RETCODE" == 0 ] || { \
  5. echo "Installing RootCAs from Mozilla...";
  6. # Load environment variables
  7. . $IROOT/mono.installed
  8. mozroots --import --sync;
  9. return 0; }
  10. # what do we want? latest mono
  11. # how do we want it? already compiled from packages but without sudo
  12. # save environment
  13. cat > $IROOT/mono.installing <<'END'
  14. export SNAPDATE=20141209141431
  15. export MONO_HOME=$IROOT/mono-snapshot-$SNAPDATE
  16. export MONO_PATH=$MONO_HOME/lib/mono/4.5
  17. export MONO_CFG_DIR=$MONO_HOME/etc
  18. export PATH=$MONO_HOME/bin:$PATH
  19. export LD_LIBRARY_PATH=$MONO_HOME/lib:$LD_LIBRARY_PATH
  20. export PKG_CONFIG_PATH=$MONO_HOME/lib/pkgconfig:$PKG_CONFIG_PATH
  21. END
  22. # load environment
  23. . $IROOT/mono.installing
  24. # temp dir for extracting archives
  25. TEMP=$IROOT/mono-snapshot-${SNAPDATE}-temp
  26. # start fresh
  27. rm -rf $TEMP && mkdir -p $TEMP
  28. rm -rf $MONO_HOME && mkdir -p $MONO_HOME
  29. # download .debs and extract them into $TEMP dir
  30. fw_get http://jenkins.mono-project.com/repo/debian/pool/main/m/mono-snapshot-${SNAPDATE}/mono-snapshot-${SNAPDATE}_${SNAPDATE}-1_amd64.deb
  31. fw_get http://jenkins.mono-project.com/repo/debian/pool/main/m/mono-snapshot-${SNAPDATE}/mono-snapshot-${SNAPDATE}-assemblies_${SNAPDATE}-1_all.deb
  32. dpkg-deb -x mono-*amd64.deb $TEMP
  33. dpkg-deb -x mono-*assemblies*.deb $TEMP
  34. # move /opt/mono-$SNAPDATE to /installs
  35. mv $TEMP/opt/mono-*/* $MONO_HOME
  36. # cleanup
  37. rm mono-*.deb
  38. rm -rf $TEMP
  39. # replace /opt/mono-$SNAPDATE path
  40. file $MONO_HOME/bin/* | grep "POSIX shell script" | awk -F: '{print $1}' | xargs sed -i "s|/opt/mono-$SNAPDATE|$MONO_HOME|g"
  41. sed -i "s|/opt/mono-$SNAPDATE|$MONO_HOME|g" $MONO_HOME/lib/pkgconfig/*.pc $MONO_HOME/etc/mono/config
  42. # import SSL certificates
  43. mozroots --import --sync
  44. #echo -e 'y\ny\ny\n' | certmgr -ssl https://nuget.org
  45. mv $IROOT/mono.installing $IROOT/mono.installed