prepare_vscode.sh 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. #!/bin/bash
  2. set -e
  3. cp -rp src/* vscode/
  4. cp -f LICENSE vscode/LICENSE.txt
  5. cd vscode || exit
  6. ../update_settings.sh
  7. # apply patches
  8. { set +x; } 2>/dev/null
  9. for file in ../patches/*.patch; do
  10. if [ -f "${file}" ]; then
  11. echo applying patch: "${file}";
  12. git apply --ignore-whitespace "${file}"
  13. if [ $? -ne 0 ]; then
  14. echo failed to apply patch "${file}" 1>&2
  15. fi
  16. fi
  17. done
  18. for file in ../patches/user/*.patch; do
  19. if [ -f "${file}" ]; then
  20. echo applying user patch: "${file}";
  21. git apply --ignore-whitespace "${file}"
  22. if [ $? -ne 0 ]; then
  23. echo failed to apply patch "${file}" 1>&2
  24. fi
  25. fi
  26. done
  27. set -x
  28. if [[ "${OS_NAME}" == "osx" ]]; then
  29. CHILD_CONCURRENCY=1 yarn --frozen-lockfile --ignore-optional
  30. npm_config_argv='{"original":["--ignore-optional"]}' yarn postinstall
  31. elif [[ "${npm_config_arch}" == "armv7l" || "${npm_config_arch}" == "ia32" ]]; then
  32. # node-gyp@9.0.0 shipped with node@16.15.0 starts using config.gypi
  33. # from the custom headers path if dist-url option was set instead of
  34. # using the config value from the process. Electron builds with pointer compression
  35. # enabled for x64 and arm64, but incorrectly ships a single copy of config.gypi
  36. # with v8_enable_pointer_compression option always set for all target architectures.
  37. # We use the force_process_config option to use the config.gypi from the
  38. # nodejs process executing npm for 32-bit architectures.
  39. export npm_config_force_process_config="true"
  40. CHILD_CONCURRENCY=1 yarn --frozen-lockfile
  41. else
  42. CHILD_CONCURRENCY=1 yarn --frozen-lockfile
  43. fi
  44. mv product.json product.json.bak
  45. # set fields in product.json
  46. checksumFailMoreInfoUrl='setpath(["checksumFailMoreInfoUrl"]; "https://go.microsoft.com/fwlink/?LinkId=828886")'
  47. tipsAndTricksUrl='setpath(["tipsAndTricksUrl"]; "https://go.microsoft.com/fwlink/?linkid=852118")'
  48. twitterUrl='setpath(["twitterUrl"]; "https://go.microsoft.com/fwlink/?LinkID=533687")'
  49. requestFeatureUrl='setpath(["requestFeatureUrl"]; "https://go.microsoft.com/fwlink/?LinkID=533482")'
  50. documentationUrl='setpath(["documentationUrl"]; "https://go.microsoft.com/fwlink/?LinkID=533484#vscode")'
  51. introductoryVideosUrl='setpath(["introductoryVideosUrl"]; "https://go.microsoft.com/fwlink/?linkid=832146")'
  52. updateUrl='setpath(["updateUrl"]; "https://vscodium.now.sh")'
  53. releaseNotesUrl='setpath(["releaseNotesUrl"]; "https://go.microsoft.com/fwlink/?LinkID=533483#vscode")'
  54. keyboardShortcutsUrlMac='setpath(["keyboardShortcutsUrlMac"]; "https://go.microsoft.com/fwlink/?linkid=832143")'
  55. keyboardShortcutsUrlLinux='setpath(["keyboardShortcutsUrlLinux"]; "https://go.microsoft.com/fwlink/?linkid=832144")'
  56. keyboardShortcutsUrlWin='setpath(["keyboardShortcutsUrlWin"]; "https://go.microsoft.com/fwlink/?linkid=832145")'
  57. quality='setpath(["quality"]; "stable")'
  58. extensionsGallery='setpath(["extensionsGallery"]; {"serviceUrl": "https://open-vsx.org/vscode/gallery", "itemUrl": "https://open-vsx.org/vscode/item"})'
  59. linkProtectionTrustedDomains='setpath(["linkProtectionTrustedDomains"]; ["https://open-vsx.org"])'
  60. nameShort='setpath(["nameShort"]; "VSCodium")'
  61. nameLong='setpath(["nameLong"]; "VSCodium")'
  62. linuxIconName='setpath(["linuxIconName"]; "vscodium")'
  63. applicationName='setpath(["applicationName"]; "codium")'
  64. win32MutexName='setpath(["win32MutexName"]; "vscodium")'
  65. win32DirName='setpath(["win32DirName"]; "VSCodium")'
  66. win32NameVersion='setpath(["win32NameVersion"]; "VSCodium")'
  67. win32RegValueName='setpath(["win32RegValueName"]; "VSCodium")'
  68. win32AppUserModelId='setpath(["win32AppUserModelId"]; "Microsoft.VSCodium")'
  69. win32ShellNameShort='setpath(["win32ShellNameShort"]; "VSCodium")'
  70. win32x64UserAppId='setpath (["win32x64UserAppId"]; "{{2E1F05D1-C245-4562-81EE-28188DB6FD17}")'
  71. urlProtocol='setpath(["urlProtocol"]; "vscodium")'
  72. serverDataFolderName='setpath(["serverDataFolderName"]; ".vscode-server-oss")'
  73. reportIssueUrl='setpath(["reportIssueUrl"]; "https://github.com/VSCodium/vscodium/issues/new")'
  74. licenseUrl='setpath(["licenseUrl"]; "https://github.com/VSCodium/vscodium/blob/master/LICENSE")'
  75. product_json_changes="${checksumFailMoreInfoUrl} | ${tipsAndTricksUrl} | ${twitterUrl} | ${requestFeatureUrl} | ${documentationUrl} | ${introductoryVideosUrl} | ${updateUrl} | ${releaseNotesUrl} | ${keyboardShortcutsUrlMac} | ${keyboardShortcutsUrlLinux} | ${keyboardShortcutsUrlWin} | ${quality} | ${extensionsGallery} | ${linkProtectionTrustedDomains} | ${nameShort} | ${nameLong} | ${linuxIconName} | ${applicationName} | ${win32MutexName} | ${win32DirName} | ${win32NameVersion} | ${win32RegValueName} | ${win32AppUserModelId} | ${win32ShellNameShort} | ${win32x64UserAppId} | ${urlProtocol} | ${serverDataFolderName} | ${reportIssueUrl} | ${licenseUrl}"
  76. cat product.json.bak | jq "${product_json_changes}" > product.json.tmp
  77. jq -s '.[0] * .[1]' product.json.tmp ../product.json > product.json
  78. rm -f product.json.tmp
  79. cat product.json
  80. ../undo_telemetry.sh
  81. if [[ "${OS_NAME}" == "linux" ]]; then
  82. # microsoft adds their apt repo to sources
  83. # unless the app name is code-oss
  84. # as we are renaming the application to vscodium
  85. # we need to edit a line in the post install template
  86. sed -i "s/code-oss/codium/" resources/linux/debian/postinst.template
  87. # fix the packages metadata
  88. # code.appdata.xml
  89. sed -i 's|Visual Studio Code|VSCodium|g' resources/linux/code.appdata.xml
  90. sed -i 's|https://code.visualstudio.com/docs/setup/linux|https://github.com/VSCodium/vscodium#download-install|' resources/linux/code.appdata.xml
  91. sed -i 's|https://code.visualstudio.com/home/home-screenshot-linux-lg.png|https://vscodium.com/img/vscodium.png|' resources/linux/code.appdata.xml
  92. sed -i 's|https://code.visualstudio.com|https://vscodium.com|' resources/linux/code.appdata.xml
  93. # control.template
  94. sed -i 's|Microsoft Corporation <vscode-linux@microsoft.com>|VSCodium Team https://github.com/VSCodium/vscodium/graphs/contributors|' resources/linux/debian/control.template
  95. sed -i 's|https://code.visualstudio.com|https://vscodium.com|' resources/linux/debian/control.template
  96. sed -i 's|Visual Studio Code|VSCodium|g' resources/linux/debian/control.template
  97. sed -i 's|https://code.visualstudio.com/docs/setup/linux|https://github.com/VSCodium/vscodium#download-install|' resources/linux/debian/control.template
  98. # code.spec.template
  99. sed -i 's|https://code.visualstudio.com/docs/setup/linux|https://github.com/VSCodium/vscodium#download-install|' resources/linux/rpm/code.spec.template
  100. sed -i 's|Microsoft Corporation|VSCodium Team|' resources/linux/rpm/code.spec.template
  101. sed -i 's|Visual Studio Code Team <vscode-linux@microsoft.com>|VSCodium Team https://github.com/VSCodium/vscodium/graphs/contributors|' resources/linux/rpm/code.spec.template
  102. sed -i 's|https://code.visualstudio.com|https://vscodium.com|' resources/linux/rpm/code.spec.template
  103. sed -i 's|Visual Studio Code|VSCodium|' resources/linux/rpm/code.spec.template
  104. # snapcraft.yaml
  105. sed -i 's|Visual Studio Code|VSCodium|' resources/linux/rpm/code.spec.template
  106. fi
  107. cd ..