#!/usr/bin/env bash set -euo pipefail # Builds vscode into lib/vscode/out-vscode. # MINIFY controls whether a minified version of vscode is built. MINIFY=${MINIFY-true} main() { cd "$(dirname "${0}")/../.." source ./ci/lib.sh cd lib/vscode # Set the commit Code will embed into the product.json. We need to do this # since Code tries to get the commit from the `.git` directory which will fail # as it is a submodule. export VSCODE_DISTRO_COMMIT VSCODE_DISTRO_COMMIT=$(git rev-parse HEAD) # Add the date, our name, links, and enable telemetry (this just makes # telemetry available; telemetry can still be disabled by flag or setting). # This needs to be done before building as Code will read this file and embed # it into the client-side code. git checkout product.json # Reset in case the script exited early. cp product.json product.original.json # Since jq has no inline edit. jq --slurp '.[0] * .[1]' product.original.json <( cat << EOF { "enableTelemetry": true, "quality": "stable", "codeServerVersion": "$VERSION", "nameShort": "code-server", "nameLong": "code-server", "applicationName": "code-server", "dataFolderName": ".code-server", "win32MutexName": "codeserver", "licenseUrl": "https://github.com/coder/code-server/blob/main/LICENSE", "win32DirName": "code-server", "win32NameVersion": "code-server", "win32AppUserModelId": "coder.code-server", "win32ShellNameShort": "c&ode-server", "darwinBundleIdentifier": "com.coder.code.server", "linuxIconName": "com.coder.code.server", "reportIssueUrl": "https://github.com/coder/code-server/issues/new", "documentationUrl": "https://go.microsoft.com/fwlink/?LinkID=533484#vscode", "keyboardShortcutsUrlMac": "https://go.microsoft.com/fwlink/?linkid=832143", "keyboardShortcutsUrlLinux": "https://go.microsoft.com/fwlink/?linkid=832144", "keyboardShortcutsUrlWin": "https://go.microsoft.com/fwlink/?linkid=832145", "introductoryVideosUrl": "https://go.microsoft.com/fwlink/?linkid=832146", "tipsAndTricksUrl": "https://go.microsoft.com/fwlink/?linkid=852118", "newsletterSignupUrl": "https://www.research.net/r/vsc-newsletter", "linkProtectionTrustedDomains": [ "https://open-vsx.org" ] } EOF ) > product.json # Any platform works since we have our own packaging step (for now). yarn gulp "vscode-reh-web-linux-x64${MINIFY:+-min}" # Reset so if you develop after building you will not be stuck with the wrong # commit (the dev client will use `oss-dev` but the dev server will still use # product.json which will have `stable-$commit`). git checkout product.json } main "$@"