mirror of
https://github.com/VSCodium/vscodium.git
synced 2026-04-21 18:40:16 +10:00
refactor: reorganize files (#2185)
This commit is contained in:
6
dev/build.ps1
Executable file
6
dev/build.ps1
Executable file
@@ -0,0 +1,6 @@
|
||||
# powershell -ExecutionPolicy ByPass -File .\build\build.ps1
|
||||
|
||||
# first so `bash` is the one installed with `git`, avoid conflict with WSL
|
||||
$env:Path = "C:\Program Files\Git\bin;" + $env:Path
|
||||
|
||||
bash ./dev/build.sh
|
||||
154
dev/build.sh
Executable file
154
dev/build.sh
Executable file
@@ -0,0 +1,154 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091,SC2129
|
||||
|
||||
### Windows
|
||||
# to run with Bash: "C:\Program Files\Git\bin\bash.exe" ./dev/build.sh
|
||||
###
|
||||
|
||||
export APP_NAME="VSCodium"
|
||||
export BINARY_NAME="codium"
|
||||
export CI_BUILD="no"
|
||||
export SHOULD_BUILD="yes"
|
||||
export SKIP_ASSETS="yes"
|
||||
export SKIP_BUILD="no"
|
||||
export SKIP_SOURCE="no"
|
||||
export VSCODE_LATEST="no"
|
||||
export VSCODE_QUALITY="stable"
|
||||
export VSCODE_SKIP_NODE_VERSION_CHECK="yes"
|
||||
|
||||
while getopts ":ilops" opt; do
|
||||
case "$opt" in
|
||||
i)
|
||||
export BINARY_NAME="codium-insiders"
|
||||
export VSCODE_QUALITY="insider"
|
||||
;;
|
||||
l)
|
||||
export VSCODE_LATEST="yes"
|
||||
;;
|
||||
o)
|
||||
export SKIP_BUILD="yes"
|
||||
;;
|
||||
p)
|
||||
export SKIP_ASSETS="no"
|
||||
;;
|
||||
s)
|
||||
export SKIP_SOURCE="yes"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
case "${OSTYPE}" in
|
||||
darwin*)
|
||||
export OS_NAME="osx"
|
||||
;;
|
||||
msys* | cygwin*)
|
||||
export OS_NAME="windows"
|
||||
;;
|
||||
*)
|
||||
export OS_NAME="linux"
|
||||
;;
|
||||
esac
|
||||
|
||||
UNAME_ARCH=$( uname -m )
|
||||
|
||||
if [[ "${UNAME_ARCH}" == "aarch64" || "${UNAME_ARCH}" == "arm64" ]]; then
|
||||
export VSCODE_ARCH="arm64"
|
||||
elif [[ "${UNAME_ARCH}" == "ppc64le" ]]; then
|
||||
export VSCODE_ARCH="ppc64le"
|
||||
elif [[ "${UNAME_ARCH}" == "riscv64" ]]; then
|
||||
export VSCODE_ARCH="riscv64"
|
||||
elif [[ "${UNAME_ARCH}" == "loongarch64" ]]; then
|
||||
export VSCODE_ARCH="loong64"
|
||||
elif [[ "${UNAME_ARCH}" == "s390x" ]]; then
|
||||
export VSCODE_ARCH="s390x"
|
||||
else
|
||||
export VSCODE_ARCH="x64"
|
||||
fi
|
||||
|
||||
export NODE_OPTIONS="--max-old-space-size=8192"
|
||||
|
||||
echo "OS_NAME=\"${OS_NAME}\""
|
||||
echo "SKIP_SOURCE=\"${SKIP_SOURCE}\""
|
||||
echo "SKIP_BUILD=\"${SKIP_BUILD}\""
|
||||
echo "SKIP_ASSETS=\"${SKIP_ASSETS}\""
|
||||
echo "VSCODE_ARCH=\"${VSCODE_ARCH}\""
|
||||
echo "VSCODE_LATEST=\"${VSCODE_LATEST}\""
|
||||
echo "VSCODE_QUALITY=\"${VSCODE_QUALITY}\""
|
||||
|
||||
if [[ "${SKIP_SOURCE}" == "no" ]]; then
|
||||
rm -rf vscode* VSCode*
|
||||
|
||||
. get_repo.sh
|
||||
. version.sh
|
||||
|
||||
# save variables for later
|
||||
echo "MS_TAG=\"${MS_TAG}\"" > build.env
|
||||
echo "MS_COMMIT=\"${MS_COMMIT}\"" >> build.env
|
||||
echo "RELEASE_VERSION=\"${RELEASE_VERSION}\"" >> build.env
|
||||
echo "BUILD_SOURCEVERSION=\"${BUILD_SOURCEVERSION}\"" >> build.env
|
||||
else
|
||||
if [[ "${SKIP_ASSETS}" != "no" ]]; then
|
||||
rm -rf vscode-* VSCode-*
|
||||
fi
|
||||
|
||||
. build.env
|
||||
|
||||
echo "MS_TAG=\"${MS_TAG}\""
|
||||
echo "MS_COMMIT=\"${MS_COMMIT}\""
|
||||
echo "RELEASE_VERSION=\"${RELEASE_VERSION}\""
|
||||
echo "BUILD_SOURCEVERSION=\"${BUILD_SOURCEVERSION}\""
|
||||
fi
|
||||
|
||||
if [[ "${SKIP_BUILD}" == "no" ]]; then
|
||||
if [[ "${SKIP_SOURCE}" != "no" ]]; then
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
git add .
|
||||
git reset -q --hard HEAD
|
||||
|
||||
rm -rf .build out*
|
||||
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [[ -f "./include_${OS_NAME}.gypi" ]]; then
|
||||
echo "Installing custom ~/.gyp/include.gypi"
|
||||
|
||||
mkdir -p ~/.gyp
|
||||
|
||||
if [[ -f "${HOME}/.gyp/include.gypi" ]]; then
|
||||
mv ~/.gyp/include.gypi ~/.gyp/include.gypi.pre-vscodium
|
||||
else
|
||||
echo "{}" > ~/.gyp/include.gypi.pre-vscodium
|
||||
fi
|
||||
|
||||
cp ./build/osx/include.gypi ~/.gyp/include.gypi
|
||||
fi
|
||||
|
||||
. build.sh
|
||||
|
||||
if [[ -f "./include_${OS_NAME}.gypi" ]]; then
|
||||
mv ~/.gyp/include.gypi.pre-vscodium ~/.gyp/include.gypi
|
||||
fi
|
||||
|
||||
if [[ "${VSCODE_LATEST}" == "yes" ]]; then
|
||||
jsonTmp=$( cat "./upstream/${VSCODE_QUALITY}.json" | jq --arg 'tag' "${MS_TAG/\-insider/}" --arg 'commit' "${MS_COMMIT}" '. | .tag=$tag | .commit=$commit' )
|
||||
echo "${jsonTmp}" > "./upstream/${VSCODE_QUALITY}.json" && unset jsonTmp
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "${SKIP_ASSETS}" == "no" ]]; then
|
||||
if [[ "${OS_NAME}" == "windows" ]]; then
|
||||
rm -rf build/windows/msi/releasedir
|
||||
fi
|
||||
|
||||
if [[ "${OS_NAME}" == "osx" && -f "./macos-codesign.env" ]]; then
|
||||
. macos-codesign.env
|
||||
|
||||
echo "CERTIFICATE_OSX_ID: ${CERTIFICATE_OSX_ID}"
|
||||
fi
|
||||
|
||||
. prepare_assets.sh
|
||||
fi
|
||||
60
dev/build_docker.sh
Executable file
60
dev/build_docker.sh
Executable file
@@ -0,0 +1,60 @@
|
||||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC1091
|
||||
|
||||
exists() { type -t "$1" &> /dev/null; }
|
||||
|
||||
export APP_NAME="VSCodium"
|
||||
export CI_BUILD="no"
|
||||
export OS_NAME="linux"
|
||||
export SHOULD_BUILD="yes"
|
||||
export SKIP_ASSETS="yes"
|
||||
export VSCODE_LATEST="no"
|
||||
export VSCODE_QUALITY="stable"
|
||||
|
||||
while getopts ":ilp" opt; do
|
||||
case "$opt" in
|
||||
i)
|
||||
export VSCODE_QUALITY="insider"
|
||||
;;
|
||||
l)
|
||||
export VSCODE_LATEST="yes"
|
||||
;;
|
||||
p)
|
||||
export SKIP_ASSETS="no"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if ! exists yarn; then
|
||||
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
|
||||
sudo apt-get install -y nodejs desktop-file-utils
|
||||
|
||||
npm install -g yarn
|
||||
fi
|
||||
|
||||
UNAME_ARCH=$( uname -m )
|
||||
|
||||
if [[ "${UNAME_ARCH}" == "x86_64" ]]; then
|
||||
export VSCODE_ARCH="x64"
|
||||
else
|
||||
export npm_config_arch=armv7l
|
||||
export npm_config_force_process_config="true"
|
||||
export VSCODE_ARCH="armhf"
|
||||
fi
|
||||
|
||||
echo "OS_NAME=\"${OS_NAME}\""
|
||||
echo "SKIP_ASSETS=\"${SKIP_ASSETS}\""
|
||||
echo "VSCODE_ARCH=\"${VSCODE_ARCH}\""
|
||||
echo "VSCODE_LATEST=\"${VSCODE_LATEST}\""
|
||||
echo "VSCODE_QUALITY=\"${VSCODE_QUALITY}\""
|
||||
|
||||
rm -rf vscode* VSCode*
|
||||
|
||||
. get_repo.sh
|
||||
. build.sh
|
||||
|
||||
if [[ "${SKIP_ASSETS}" == "no" ]]; then
|
||||
. prepare_assets.sh
|
||||
fi
|
||||
52
dev/patch.sh
Executable file
52
dev/patch.sh
Executable file
@@ -0,0 +1,52 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
echo "$#"
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
git add .
|
||||
git reset -q --hard HEAD
|
||||
|
||||
while [[ -n "$( git log -1 | grep "VSCODIUM HELPER" )" ]]; do
|
||||
git reset -q --hard HEAD~
|
||||
done
|
||||
|
||||
git apply --reject "../patches/helper/settings.patch"
|
||||
|
||||
while [ $# -gt 1 ]; do
|
||||
echo "Parameter: $1"
|
||||
if [[ "${1}" == *patch ]]; then
|
||||
FILE="../patches/${1}"
|
||||
else
|
||||
FILE="../patches/${1}.patch"
|
||||
fi
|
||||
|
||||
git apply --reject "${FILE}"
|
||||
|
||||
shift
|
||||
done
|
||||
|
||||
git add .
|
||||
git commit -q -m "VSCODIUM HELPER" --no-verify
|
||||
|
||||
if [[ "${1}" == *patch ]]; then
|
||||
FILE="../patches/${1}"
|
||||
else
|
||||
FILE="../patches/${1}.patch"
|
||||
fi
|
||||
|
||||
if [[ -f "${FILE}" ]]; then
|
||||
git apply --reject "${FILE}"
|
||||
fi
|
||||
|
||||
read -rp "Press any key when the conflict have been resolved..." -n1 -s
|
||||
|
||||
git add .
|
||||
git diff --staged -U1 > "${FILE}"
|
||||
git reset -q --hard HEAD~
|
||||
|
||||
cd ..
|
||||
|
||||
echo "The patch has been generated."
|
||||
39
dev/update_api.sh
Executable file
39
dev/update_api.sh
Executable file
@@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
export VSCODE_QUALITY="stable"
|
||||
|
||||
while getopts ":i" opt; do
|
||||
case "$opt" in
|
||||
i)
|
||||
export VSCODE_QUALITY="insider"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
URL=$( curl -s "https://update.code.visualstudio.com/api/update/win32-x64-archive/${VSCODE_QUALITY}/0000000000000000000000000000000000000000" | jq -c '.url' | sed -E 's/.*"([^"]+)".*/\1/' )
|
||||
# echo "url: ${URL}"
|
||||
FILE="${URL##*/}"
|
||||
# echo "file: ${FILE}"
|
||||
DIRECTORY="${FILE%.zip}"
|
||||
# echo "directory: ${DIRECTORY}"
|
||||
|
||||
if [[ ! -f "${FILE}" ]]; then
|
||||
wget "${URL}"
|
||||
fi
|
||||
|
||||
if [[ ! -d "${DIRECTORY}" ]]; then
|
||||
unzip "${FILE}" -d "${DIRECTORY}"
|
||||
fi
|
||||
|
||||
APIS=$( jq -r '.extensionEnabledApiProposals' "${DIRECTORY}/resources/app/product.json" )
|
||||
|
||||
APIS=$( echo "${APIS}" | jq '. += {"jeanp413.open-remote-ssh": ["resolvers", "tunnels", "terminalDataWriteEvent", "contribRemoteHelp", "contribViewsRemote"]}' )
|
||||
APIS=$( echo "${APIS}" | jq '. += {"jeanp413.open-remote-wsl": ["resolvers", "contribRemoteHelp", "contribViewsRemote"]}' )
|
||||
|
||||
jsonTmp=$( jq --argjson v "${APIS}" 'setpath(["extensionEnabledApiProposals"]; $v)' product.json )
|
||||
echo "${jsonTmp}" > product.json && unset jsonTmp
|
||||
80
dev/update_patches.sh
Executable file
80
dev/update_patches.sh
Executable file
@@ -0,0 +1,80 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
export VSCODE_QUALITY="stable"
|
||||
|
||||
while getopts ":i" opt; do
|
||||
case "$opt" in
|
||||
i)
|
||||
export VSCODE_QUALITY="insider"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
check_file() {
|
||||
while [ $# -gt 1 ]; do
|
||||
git apply --reject "${1}"
|
||||
|
||||
shift
|
||||
done
|
||||
|
||||
if [[ -f "${1}" ]]; then
|
||||
echo applying patch: "${1}"
|
||||
if ! git apply --ignore-whitespace "${1}"; then
|
||||
echo failed to apply patch "${1}"
|
||||
|
||||
git apply --reject "${1}"
|
||||
git apply --reject "../patches/helper/settings.patch"
|
||||
|
||||
read -rp "Press any key when the conflict have been resolved..." -n1 -s
|
||||
|
||||
git restore .vscode/settings.json
|
||||
git add .
|
||||
git diff --staged -U1 > "${1}"
|
||||
fi
|
||||
git add .
|
||||
git reset -q --hard HEAD
|
||||
fi
|
||||
}
|
||||
|
||||
cd vscode || { echo "'vscode' dir not found"; exit 1; }
|
||||
|
||||
git add .
|
||||
git reset -q --hard HEAD
|
||||
|
||||
for FILE in ../patches/*.patch; do
|
||||
check_file "${FILE}"
|
||||
done
|
||||
|
||||
if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
|
||||
for FILE in ../patches/insider/*.patch; do
|
||||
check_file "${FILE}"
|
||||
done
|
||||
fi
|
||||
|
||||
for ARCH in alpine linux osx windows; do
|
||||
for FILE in "../patches/${ARCH}/"*.patch; do
|
||||
if [[ "${FILE}" != *"/arch-"* ]]; then
|
||||
check_file "${FILE}"
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ "${ARCH}" == "linux" ]]; then
|
||||
check_file "../patches/linux/arch-0-support.patch"
|
||||
check_file "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch"
|
||||
check_file "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch" "../patches/linux/arch-2-riscv64.patch"
|
||||
check_file "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch" "../patches/linux/arch-2-riscv64.patch" "../patches/linux/arch-3-loong64.patch"
|
||||
check_file "../patches/linux/arch-0-support.patch" "../patches/linux/arch-1-ppc64le.patch" "../patches/linux/arch-2-riscv64.patch" "../patches/linux/arch-3-loong64.patch" "../patches/linux/arch-4-s390x.patch"
|
||||
fi
|
||||
|
||||
for TARGET in client reh; do
|
||||
for FILE in "../patches/${ARCH}/${TARGET}/"*.patch; do
|
||||
check_file "${FILE}"
|
||||
done
|
||||
|
||||
for FILE in "../patches/${ARCH}/${TARGET}/"*/*.patch; do
|
||||
check_file "${FILE}"
|
||||
done
|
||||
done
|
||||
done
|
||||
Reference in New Issue
Block a user