2020-03-11 22:47:05 -04:00
#!/bin/bash
2020-09-14 12:57:19 -04:00
set -e
2022-08-16 07:51:45 -04:00
# include common functions
. ./utils.sh
2020-09-18 16:59:41 -04:00
cp -rp src/* vscode/
2021-09-08 19:38:07 -04:00
cp -f LICENSE vscode/LICENSE.txt
2022-06-08 16:03:44 -04:00
cd vscode || { echo "'vscode' dir not found" ; exit 1; }
2020-03-11 22:47:05 -04:00
2020-09-18 16:59:41 -04:00
../update_settings.sh
2020-03-11 22:47:05 -04:00
# apply patches
2021-08-22 23:05:01 -04:00
{ set +x; } 2>/dev/null
2021-07-29 06:31:54 -04:00
for file in ../patches/*.patch; do
2022-06-05 15:30:23 -04:00
if [ -f " ${ file } " ] ; then
echo applying patch: " ${ file } " ;
git apply --ignore-whitespace " ${ file } "
2021-08-14 16:59:32 -04:00
if [ $? -ne 0 ] ; then
2022-06-05 15:30:23 -04:00
echo failed to apply patch " ${ file } " 1>& 2
2021-07-29 06:31:54 -04:00
fi
fi
done
2021-06-20 23:19:41 -04:00
for file in ../patches/user/*.patch; do
2022-06-05 15:30:23 -04:00
if [ -f " ${ file } " ] ; then
echo applying user patch: " ${ file } " ;
git apply --ignore-whitespace " ${ file } "
2021-08-14 16:59:32 -04:00
if [ $? -ne 0 ] ; then
2022-06-05 15:30:23 -04:00
echo failed to apply patch " ${ file } " 1>& 2
2021-06-20 23:19:41 -04:00
fi
fi
done
2020-03-11 22:47:05 -04:00
2021-08-22 23:05:01 -04:00
set -x
2022-05-14 12:44:59 -04:00
if [ [ " ${ OS_NAME } " = = "osx" ] ] ; then
2022-06-09 16:19:30 -04:00
CHILD_CONCURRENCY = 1 yarn --frozen-lockfile
yarn postinstall
2022-05-14 12:44:59 -04:00
elif [ [ " ${ npm_config_arch } " = = "armv7l" || " ${ npm_config_arch } " = = "ia32" ] ] ; then
# node-gyp@9.0.0 shipped with node@16.15.0 starts using config.gypi
# from the custom headers path if dist-url option was set instead of
# using the config value from the process. Electron builds with pointer compression
# enabled for x64 and arm64, but incorrectly ships a single copy of config.gypi
# with v8_enable_pointer_compression option always set for all target architectures.
# We use the force_process_config option to use the config.gypi from the
# nodejs process executing npm for 32-bit architectures.
export npm_config_force_process_config = "true"
CHILD_CONCURRENCY = 1 yarn --frozen-lockfile
2020-09-16 14:45:51 -04:00
else
CHILD_CONCURRENCY = 1 yarn --frozen-lockfile
fi
2020-06-19 18:39:56 -04:00
2020-09-18 16:10:28 -04:00
mv product.json product.json.bak
2020-03-11 22:47:05 -04:00
# set fields in product.json
2020-10-06 14:09:18 -04:00
checksumFailMoreInfoUrl = 'setpath(["checksumFailMoreInfoUrl"]; "https://go.microsoft.com/fwlink/?LinkId=828886")'
2020-03-11 22:47:05 -04:00
tipsAndTricksUrl = 'setpath(["tipsAndTricksUrl"]; "https://go.microsoft.com/fwlink/?linkid=852118")'
twitterUrl = 'setpath(["twitterUrl"]; "https://go.microsoft.com/fwlink/?LinkID=533687")'
requestFeatureUrl = 'setpath(["requestFeatureUrl"]; "https://go.microsoft.com/fwlink/?LinkID=533482")'
documentationUrl = 'setpath(["documentationUrl"]; "https://go.microsoft.com/fwlink/?LinkID=533484#vscode")'
introductoryVideosUrl = 'setpath(["introductoryVideosUrl"]; "https://go.microsoft.com/fwlink/?linkid=832146")'
updateUrl = 'setpath(["updateUrl"]; "https://vscodium.now.sh")'
releaseNotesUrl = 'setpath(["releaseNotesUrl"]; "https://go.microsoft.com/fwlink/?LinkID=533483#vscode")'
keyboardShortcutsUrlMac = 'setpath(["keyboardShortcutsUrlMac"]; "https://go.microsoft.com/fwlink/?linkid=832143")'
keyboardShortcutsUrlLinux = 'setpath(["keyboardShortcutsUrlLinux"]; "https://go.microsoft.com/fwlink/?linkid=832144")'
keyboardShortcutsUrlWin = 'setpath(["keyboardShortcutsUrlWin"]; "https://go.microsoft.com/fwlink/?linkid=832145")'
quality = 'setpath(["quality"]; "stable")'
2020-05-18 05:56:28 -04:00
extensionsGallery = 'setpath(["extensionsGallery"]; {"serviceUrl": "https://open-vsx.org/vscode/gallery", "itemUrl": "https://open-vsx.org/vscode/item"})'
linkProtectionTrustedDomains = 'setpath(["linkProtectionTrustedDomains"]; ["https://open-vsx.org"])'
2020-03-11 22:47:05 -04:00
nameShort = 'setpath(["nameShort"]; "VSCodium")'
nameLong = 'setpath(["nameLong"]; "VSCodium")'
linuxIconName = 'setpath(["linuxIconName"]; "vscodium")'
applicationName = 'setpath(["applicationName"]; "codium")'
win32MutexName = 'setpath(["win32MutexName"]; "vscodium")'
win32DirName = 'setpath(["win32DirName"]; "VSCodium")'
win32NameVersion = 'setpath(["win32NameVersion"]; "VSCodium")'
win32RegValueName = 'setpath(["win32RegValueName"]; "VSCodium")'
win32AppUserModelId = 'setpath(["win32AppUserModelId"]; "Microsoft.VSCodium")'
win32ShellNameShort = 'setpath(["win32ShellNameShort"]; "VSCodium")'
win32x64UserAppId = 'setpath (["win32x64UserAppId"]; "{{2E1F05D1-C245-4562-81EE-28188DB6FD17}")'
urlProtocol = 'setpath(["urlProtocol"]; "vscodium")'
2022-06-08 10:59:06 -04:00
serverApplicationName = 'setpath(["serverApplicationName"]; "codium-server")'
serverDataFolderName = 'setpath(["serverDataFolderName"]; ".vscodium-server")'
2022-05-07 03:51:33 -04:00
reportIssueUrl = 'setpath(["reportIssueUrl"]; "https://github.com/VSCodium/vscodium/issues/new")'
2021-09-07 06:22:40 -04:00
licenseUrl = 'setpath(["licenseUrl"]; "https://github.com/VSCodium/vscodium/blob/master/LICENSE")'
2020-03-11 22:47:05 -04:00
2022-06-08 10:59:06 -04:00
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 } | ${ serverApplicationName } | ${ serverDataFolderName } | ${ reportIssueUrl } | ${ licenseUrl } "
2022-04-07 17:15:32 -04:00
cat product.json.bak | jq " ${ product_json_changes } " > product.json.tmp
jq -s '.[0] * .[1]' product.json.tmp ../product.json > product.json
rm -f product.json.tmp
2020-03-11 22:47:05 -04:00
cat product.json
2022-08-16 07:51:45 -04:00
mv package.json package.json.bak
2022-08-16 13:00:11 -04:00
package_json_changes = "setpath([" \" "version" \" "]; " \" " ${ RELEASE_VERSION } " \" ") | setpath([" \" "release" \" "]; " \" " ${ RELEASE_VERSION } " \" ")"
2022-08-16 07:51:45 -04:00
cat package.json.bak | jq " ${ package_json_changes } " > package.json
2022-08-16 13:00:11 -04:00
gsed -i -E 's/"version": "(.*)\.([0-9]+)"/"version": "\1"/' package.json
gsed -i -E 's/"release": "(.*)\.([0-9]+)"/"release": "\2"/' package.json
2022-08-16 07:51:45 -04:00
2020-09-18 16:59:41 -04:00
../undo_telemetry.sh
2020-03-11 22:47:05 -04:00
2022-06-05 15:30:23 -04:00
if [ [ " ${ OS_NAME } " = = "linux" ] ] ; then
2020-03-11 22:47:05 -04:00
# microsoft adds their apt repo to sources
# unless the app name is code-oss
# as we are renaming the application to vscodium
# we need to edit a line in the post install template
sed -i "s/code-oss/codium/" resources/linux/debian/postinst.template
2021-06-20 23:19:41 -04:00
2020-12-21 09:26:30 -05:00
# fix the packages metadata
# code.appdata.xml
2021-01-12 16:56:52 -05:00
sed -i 's|Visual Studio Code|VSCodium|g' resources/linux/code.appdata.xml
sed -i 's|https://code.visualstudio.com/docs/setup/linux|https://github.com/VSCodium/vscodium#download-install|' resources/linux/code.appdata.xml
2020-12-21 09:26:30 -05:00
sed -i 's|https://code.visualstudio.com/home/home-screenshot-linux-lg.png|https://vscodium.com/img/vscodium.png|' resources/linux/code.appdata.xml
sed -i 's|https://code.visualstudio.com|https://vscodium.com|' resources/linux/code.appdata.xml
2021-06-20 23:19:41 -04:00
2020-12-21 09:26:30 -05:00
# control.template
sed -i 's|Microsoft Corporation <vscode-linux@microsoft.com>|VSCodium Team https://github.com/VSCodium/vscodium/graphs/contributors|' resources/linux/debian/control.template
sed -i 's|https://code.visualstudio.com|https://vscodium.com|' resources/linux/debian/control.template
sed -i 's|Visual Studio Code|VSCodium|g' resources/linux/debian/control.template
sed -i 's|https://code.visualstudio.com/docs/setup/linux|https://github.com/VSCodium/vscodium#download-install|' resources/linux/debian/control.template
2021-06-20 23:19:41 -04:00
2020-12-21 09:26:30 -05:00
# code.spec.template
sed -i 's|https://code.visualstudio.com/docs/setup/linux|https://github.com/VSCodium/vscodium#download-install|' resources/linux/rpm/code.spec.template
sed -i 's|Microsoft Corporation|VSCodium Team|' resources/linux/rpm/code.spec.template
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
sed -i 's|https://code.visualstudio.com|https://vscodium.com|' resources/linux/rpm/code.spec.template
sed -i 's|Visual Studio Code|VSCodium|' resources/linux/rpm/code.spec.template
2021-06-20 23:19:41 -04:00
2020-12-21 09:26:30 -05:00
# snapcraft.yaml
sed -i 's|Visual Studio Code|VSCodium|' resources/linux/rpm/code.spec.template
2020-03-11 22:47:05 -04:00
fi
2020-09-18 15:40:54 -04:00
cd ..