Compare commits

..

16 Commits

Author SHA1 Message Date
Baptiste Augrain
f05272f2d0 fix: update api proposals (#1187) 2022-08-09 15:21:59 +02:00
Vedant
383b7ef4f8 feat: publish to winget (#1174) 2022-08-09 12:06:38 +02:00
Baptiste Augrain
2874277aa4 fix: replace grep with ripgrep due to excruciating timing (#1170) 2022-08-05 13:09:02 +02:00
Baptiste Augrain
8883466ef5 fix(1.70): disable dependencies checking for .deb (#1180) 2022-08-05 12:08:36 +02:00
Pavlo Rudy
fdc6b32d8b close #1160 2022-07-15 21:29:11 +03:00
Todd Williams
81836873af docs: update legality of vscode marketplace's usage (#1092) 2022-07-09 08:13:26 +02:00
Baptiste Augrain
3fa8eee9fe feat: add script to update patches (#1138) 2022-06-20 10:34:50 +02:00
Baptiste Augrain
55d502d659 doc: add patch update process (#1136) 2022-06-19 12:08:28 +02:00
Pavel Sterin
f6a99949c5 feat: use github versions of included extensions (#1133) 2022-06-19 11:49:56 +02:00
Baptiste Augrain
85126f1a7c fix: set the built files at the built time (#1132) 2022-06-17 14:47:08 +02:00
Baptiste Augrain
bca4eea470 fix(snap): remove double env variable (#1131) 2022-06-16 23:09:25 +02:00
Baptiste Augrain
2b190dfe51 fix(snap): use master branch to publish (#1130) 2022-06-16 23:06:07 +02:00
Baptiste Augrain
c4583ad3f0 fix: use env variable instead of login option (#1128) 2022-06-16 12:20:10 +02:00
laksith19
79a9f4a292 Remove repeated dependency (#1125) 2022-06-15 18:36:20 +03:00
Baptiste Augrain
112f730493 fix: generate mssing out directory (#1117) 2022-06-11 13:46:15 +02:00
Baptiste Augrain
7313f3ad25 ci(linux): correctly detect reh binaries (#1116) 2022-06-10 07:31:34 +02:00
15 changed files with 221 additions and 74 deletions

View File

@@ -116,7 +116,7 @@ jobs:
run: ./stores/snapcraft/check_version.sh
env:
ARCHITECTURE: ${{ matrix.platform }}
SNAP_STORE_LOGIN: ${{ secrets.SNAP_STORE_LOGIN }}
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_STORE_LOGIN }}
# - uses: docker/setup-qemu-action@v1
# if: env.SHOULD_DEPLOY == 'yes'
@@ -140,9 +140,10 @@ jobs:
if: env.SHOULD_DEPLOY == 'yes'
- uses: snapcore/action-publish@v1
- uses: snapcore/action-publish@master
env:
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_STORE_LOGIN }}
with:
store_login: ${{ secrets.SNAP_STORE_LOGIN }}
snap: ${{ steps.build.outputs.snap }}
release: stable
if: env.SHOULD_DEPLOY == 'yes'

View File

@@ -96,3 +96,11 @@ jobs:
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
GITHUB_USERNAME: ${{ github.repository_owner }}
- if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
name: Release to WinGet
uses: vedantmgoyal2009/winget-releaser@latest
with:
identifier: VSCodium.VSCodium
release-tag: env.MS_TAG
installers-regex: '\.exe$' # only .exe files
token: ${{ secrets.STRONGER_GITHUB_TOKEN }}

1
.gitignore vendored
View File

@@ -1,5 +1,6 @@
vscode
VS*/*
VSCode*
.DS_Store
build/linux/appimage/out
build/linux/appimage/pkg2appimage.AppDir

View File

@@ -53,7 +53,7 @@ See [this article](https://www.gitpod.io/blog/open-vsx/) for more information on
### <a id="howto-vscode-marketplace"></a>How to use the VS Code Marketplace
You can switch and use the VS Code marketplace by using the following solutions. However, note that [it is not clear whether this is legal](https://github.com/microsoft/vscode/issues/31168).
You can switch and use the VS Code marketplace by using the following solutions. However, note that [ this is not legal](https://github.com/microsoft/vscode/issues/31168).
With the following environment variables:
- `VSCODE_GALLERY_SERVICE_URL='https://marketplace.visualstudio.com/_apis/public/gallery'`

View File

@@ -148,7 +148,7 @@ The builds are run every day, but exit early if there isn't a new release from M
## <a id="supported-platforms"></a>Supported Platforms
The minimal version is limited by the core component Electron, you may want to check its [supported platform list](https://www.electronjs.org/docs/tutorial/support#supported-platforms).
The minimal version is limited by the core component Electron, you may want to check its [platform prerequisites](https://www.electronjs.org/docs/latest/development/build-instructions-gn#platform-prerequisites).
- [x] macOS (`zip`, `dmg`) OS X 10.10 or newer x64
- [x] macOS (`zip`, `dmg`) macOS 11.0 or newer arm64
- [x] GNU/Linux x64 (`deb`, `rpm`, `AppImage`, `tar.gz`)

View File

@@ -23,6 +23,8 @@ if [[ "${SHOULD_BUILD}" == "yes" ]]; then
if [[ "${OS_NAME}" == "osx" ]]; then
yarn gulp "vscode-darwin-${VSCODE_ARCH}-min-ci"
find "../VSCode-darwin-${VSCODE_ARCH}" -exec touch {} \;
VSCODE_PLATFORM="darwin"
elif [[ "${OS_NAME}" == "windows" ]]; then
. ../build/windows/rtf/make.sh
@@ -58,6 +60,8 @@ if [[ "${SHOULD_BUILD}" == "yes" ]]; then
else # linux
yarn gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
find "../VSCode-linux-${VSCODE_ARCH}" -exec touch {} \;
if [[ "${SKIP_LINUX_PACKAGES}" != "True" ]]; then
if [[ "${SHOULD_BUILD_DEB}" != "no" || "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
yarn gulp "vscode-linux-${VSCODE_ARCH}-build-deb"
@@ -76,6 +80,7 @@ if [[ "${SHOULD_BUILD}" == "yes" ]]; then
fi
if [[ "${SHOULD_BUILD_REH}" != "no" ]]; then
yarn gulp minify-vscode-reh
yarn gulp "vscode-reh-${VSCODE_PLATFORM}-${VSCODE_ARCH}-min-ci"
fi

20
build/update_api.sh Executable file
View File

@@ -0,0 +1,20 @@
#!/bin/bash
URL=`curl -s "https://update.code.visualstudio.com/api/update/win32-x64-archive/stable/VERSION" | jq -c '.url' | sed -E 's/.*"([^"]+)".*/\1/'`
# echo "url: ${URL}"
FILE=`echo "${URL}" | sed -E 's|.*/([^/]+\.zip)$|\1|'`
# echo "file: ${FILE}"
DIRECTORY=`echo "${URL}" | sed -E 's|.*/([^/]+)\.zip$|\1|'`
# echo "directory: ${DIRECTORY}"
if [[ ! -f "${FILE}" ]]; then
wget "${URL}"
fi
if [[ ! -d "${DIRECTORY}" ]]; then
unzip "${FILE}" -d "${DIRECTORY}"
fi
APIS=`cat ${DIRECTORY}/resources/app/product.json | jq -r '.extensionEnabledApiProposals'`
cat <<< $(jq --argjson v "${APIS}" 'setpath(["extensionEnabledApiProposals"]; $v)' product.json) > product.json

21
build/update_patches.sh Executable file
View File

@@ -0,0 +1,21 @@
#!/bin/bash
cd vscode || { echo "'vscode' dir not found"; exit 1; }
git add .
git reset -q --hard HEAD
for file in ../patches/*.patch; do
if [ -f "${file}" ]; then
echo applying patch: "${file}"
git apply --ignore-whitespace "${file}"
if [ $? -ne 0 ]; then
echo failed to apply patch "${file}"
git apply --reject "${file}"
read -p "Press any key when the conflict have been resolved..." -n1 -s
git diff > "${file}"
fi
git add .
git reset -q --hard HEAD
fi
done

View File

@@ -195,8 +195,8 @@ if [ "${VSCODIUM_ASSETS}" != "null" ]; then
export SHOULD_BUILD_TAR="no"
fi
if [[ -z $( contains "vscodium-reh-linux-arm64-${VSCODE_ARCH}-${MS_TAG}.tar.gz" ) ]]; then
echo "Building on Linux x64 because we have no REH archive"
if [[ -z $( contains "vscodium-reh-linux-arm64-${MS_TAG}.tar.gz" ) ]]; then
echo "Building on Linux arm64 because we have no REH archive"
export SHOULD_BUILD="yes"
else
export SHOULD_BUILD_REH="no"
@@ -231,7 +231,7 @@ if [ "${VSCODIUM_ASSETS}" != "null" ]; then
export SHOULD_BUILD_TAR="no"
fi
if [[ -z $( contains "vscodium-reh-linux-armhf-${VSCODE_ARCH}-${MS_TAG}.tar.gz" ) ]]; then
if [[ -z $( contains "vscodium-reh-linux-armhf-${MS_TAG}.tar.gz" ) ]]; then
echo "Building on Linux arm because we have no REH archive"
export SHOULD_BUILD="yes"
else
@@ -274,7 +274,7 @@ if [ "${VSCODIUM_ASSETS}" != "null" ]; then
export SHOULD_BUILD_APPIMAGE="no"
fi
if [[ -z $( contains "vscodium-reh-linux-x64-${VSCODE_ARCH}-${MS_TAG}.tar.gz" ) ]]; then
if [[ -z $( contains "vscodium-reh-linux-x64-${MS_TAG}.tar.gz" ) ]]; then
echo "Building on Linux x64 because we have no REH archive"
export SHOULD_BUILD="yes"
else

View File

@@ -8,6 +8,11 @@
- [Windows](#dependencies-windows)
- [Build Scripts](#build-scripts)
- [Build in Docker](#build-docker)
- [X64](#build-docker-x64)
- [ARM 32bits](#build-docker-arm32)
- [Patch Update Process](#patch-update-process)
- [Semi-Automated](#patch-update-process-semiauto)
- [Manual](#patch-update-process-manual)
## <a id="dependencies"></a>Dependencies
@@ -29,8 +34,8 @@
- rpmbuild
- dpkg
- python3
- libsecret-1-dev
- imagemagick (for AppImage)
- ripgrep
### <a id="dependencies-macos"></a>MacOS
@@ -55,12 +60,16 @@ Each platform has its build helper script in the directory `build`.
To build for Linux, you can alternatively build VSCodium in docker
### X64
### <a id="build-docker-x64"></a>X64
Firstly, create the container with:
```
docker run -ti --volume=<local vscodium source>:/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:bionic-x64 bash
```
like
```
docker run -ti --volume=$(pwd):/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:bionic-x64 bash
```
When inside the container, you can use the following commands to build:
```
@@ -80,12 +89,16 @@ export VSCODE_ARCH=x64
./build.sh
```
### ARM 32bits
### <a id="build-docker-arm32"></a>ARM 32bits
Firstly, create the container with:
```
docker run -ti --volume=<local vscodium source>:/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:stretch-armhf bash
```
like
```
docker run -ti --volume=$(pwd):/root/vscodium --name=vscodium-build-agent vscodium/vscodium-linux-build-agent:stretch-armhf bash
```
When inside the container, you can use the following commands to build:
```
@@ -104,3 +117,26 @@ export npm_config_force_process_config="true"
./build.sh
```
## <a id="patch-update-process"></a>Patch Update Process
## <a id="patch-update-process-semiauto"></a>Semi-Automated
- run `./build/build_<os>.sh`, if a patch is failing then,
- run `./build/update_patches.sh`
- when the script pause at `Press any key when the conflict have been resolved...`, open `vscode` directory in **VSCodium**
- fix all the `*.rej` files
- run `yarn watch`
- run `./script/code.sh` until everything ok
- press any key to continue the script `update_patches.sh`
## <a id="patch-update-process-manual"></a>Manual
- run `./build/build_<os>.sh`, if a patch is failing then,
- open `vscode` directory in **VSCodium**
- revert all changes
- run `git apply --reject ../patches/<name>.patch`
- fix all the `*.rej` files
- run `yarn watch`
- run `./script/code.sh` until everything ok
- run `git diff > ../patches/<name>.patch`

View File

@@ -1,5 +1,31 @@
diff --git a/build/linux/debian/dependencies-generator.js b/build/linux/debian/dependencies-generator.js
index 235ca26..4f0f06e 100644
--- a/build/linux/debian/dependencies-generator.js
+++ b/build/linux/debian/dependencies-generator.js
@@ -17,7 +17,7 @@ const dep_lists_1 = require("./dep-lists");
// If true, we fail the build if there are new dependencies found during that task.
// The reference dependencies, which one has to update when the new dependencies
// are valid, are in dep-lists.ts
-const FAIL_BUILD_FOR_NEW_DEPENDENCIES = true;
+const FAIL_BUILD_FOR_NEW_DEPENDENCIES = false;
function getDependencies(buildDir, applicationName, arch, sysroot) {
// Get the files for which we want to find dependencies.
const nativeModulesPath = path.join(buildDir, 'resources', 'app', 'node_modules.asar.unpacked');
diff --git a/build/linux/debian/dependencies-generator.ts b/build/linux/debian/dependencies-generator.ts
index 9e3d466..776a4c2 100644
--- a/build/linux/debian/dependencies-generator.ts
+++ b/build/linux/debian/dependencies-generator.ts
@@ -19,7 +19,7 @@ import { ArchString } from './types';
// If true, we fail the build if there are new dependencies found during that task.
// The reference dependencies, which one has to update when the new dependencies
// are valid, are in dep-lists.ts
-const FAIL_BUILD_FOR_NEW_DEPENDENCIES: boolean = true;
+const FAIL_BUILD_FOR_NEW_DEPENDENCIES: boolean = false;
export function getDependencies(buildDir: string, applicationName: string, arch: ArchString, sysroot: string): string[] {
// Get the files for which we want to find dependencies.
diff --git a/build/linux/rpm/dependencies-generator.js b/build/linux/rpm/dependencies-generator.js
index 1d91eb8..ed6b775 100644
index 90cfca9..c92579e 100644
--- a/build/linux/rpm/dependencies-generator.js
+++ b/build/linux/rpm/dependencies-generator.js
@@ -16,7 +16,7 @@ const dep_lists_1 = require("./dep-lists");
@@ -12,10 +38,10 @@ index 1d91eb8..ed6b775 100644
// Get the files for which we want to find dependencies.
const nativeModulesPath = path.join(buildDir, 'resources', 'app', 'node_modules.asar.unpacked');
diff --git a/build/linux/rpm/dependencies-generator.ts b/build/linux/rpm/dependencies-generator.ts
index 95953ec..f5ffc2e 100644
index 4b84640..55429fb 100644
--- a/build/linux/rpm/dependencies-generator.ts
+++ b/build/linux/rpm/dependencies-generator.ts
@@ -18,7 +18,7 @@ import { ArchString } from './types';
@@ -16,7 +16,7 @@ import { ArchString } from './types';
// If true, we fail the build if there are new dependencies found during that task.
// The reference dependencies, which one has to update when the new dependencies
// are valid, are in dep-lists.ts
@@ -25,10 +51,10 @@ index 95953ec..f5ffc2e 100644
export function getDependencies(buildDir: string, applicationName: string, arch: ArchString): string[] {
// Get the files for which we want to find dependencies.
diff --git a/resources/linux/rpm/code.spec.template b/resources/linux/rpm/code.spec.template
index 5b7eadb..87c914d 100644
index 00ddb6f..cea0e97 100644
--- a/resources/linux/rpm/code.spec.template
+++ b/resources/linux/rpm/code.spec.template
@@ -74,3 +74,5 @@ update-mime-database /usr/share/mime &> /dev/null || :
@@ -72,3 +72,5 @@ update-mime-database /usr/share/mime &> /dev/null || :
/usr/share/pixmaps/@@ICON@@.png
/usr/share/bash-completion/completions/@@NAME@@
/usr/share/zsh/site-functions/_@@NAME@@

View File

@@ -0,0 +1,12 @@
diff --git a/build/gulpfile.extensions.js b/build/gulpfile.extensions.js
--- a/build/gulpfile.extensions.js
+++ b/build/gulpfile.extensions.js
@@ -223,7 +223,7 @@ const cleanExtensionsBuildTask = task.define('clean-extensions-build', util.rimr
const compileExtensionsBuildTask = task.define('compile-extensions-build', task.series(
cleanExtensionsBuildTask,
task.define('bundle-extensions-build', () => ext.packageLocalExtensionsStream(false).pipe(gulp.dest('.build'))),
- task.define('bundle-marketplace-extensions-build', () => ext.packageMarketplaceExtensionsStream(false, product.extensionsGallery?.serviceUrl).pipe(gulp.dest('.build'))),
+ task.define('bundle-marketplace-extensions-build', () => ext.packageMarketplaceExtensionsStream(false).pipe(gulp.dest('.build'))),
));
gulp.task(compileExtensionsBuildTask);

View File

@@ -51,7 +51,8 @@
"testObserver"
],
"VisualStudioExptTeam.vscodeintellicode-completions": [
"inlineCompletions"
"inlineCompletionsNew",
"inlineCompletionsAdditions"
],
"ms-vsliveshare.vsliveshare": [
"contribMenuBarHome",
@@ -61,13 +62,12 @@
"findTextInFiles",
"notebookCellExecutionState",
"notebookContentProvider",
"notebookDocumentEvents",
"notebookEditor",
"notebookEditorEdit",
"notebookLiveShare",
"notebookWorkspaceEdit",
"terminalDimensions",
"terminalDataWriteEvent",
"textDocumentNotebook",
"textSearchProvider"
],
"ms-vscode.js-debug": [
@@ -82,25 +82,20 @@
],
"ms-python.python": [
"quickPickSortByLabel",
"testObserver",
"notebookEditor"
"testObserver"
],
"ms-dotnettools.dotnet-interactive-vscode": [
"notebookConcatTextDocument",
"notebookContentProvider",
"notebookCellExecutionState",
"notebookControllerKind",
"notebookDebugOptions",
"notebookDeprecated",
"notebookEditor",
"notebookEditorDecorationType",
"notebookEditorEdit",
"notebookLiveShare",
"notebookMessaging",
"notebookMime",
"textDocumentNotebook"
"notebookWorkspaceEdit"
],
"GitHub.codespaces": [
"contribEditSessions",
"contribMenuBarHome",
"contribRemoteHelp",
"contribViewsRemote",
@@ -112,10 +107,10 @@
"ms-vscode.azure-repos": [
"extensionRuntime",
"fileSearchProvider",
"resolvers",
"textSearchProvider"
],
"ms-vscode.remote-repositories": [
"contribEditSessions",
"contribRemoteHelp",
"contribMenuBarHome",
"contribViewsRemote",
@@ -128,14 +123,7 @@
"scmSelectedProvider",
"scmValidation",
"textSearchProvider",
"timeline",
"notebookEditor"
],
"ms-vscode.vscode-github-issue-notebooks": [
"notebookEditor"
],
"tanhakabir.rest-book": [
"notebookEditor"
"timeline"
],
"ms-vscode-remote.remote-wsl": [
"resolvers",
@@ -148,6 +136,10 @@
"contribViewsRemote",
"telemetry"
],
"ms-vscode.remote-server": [
"resolvers",
"contribViewsRemote"
],
"ms-vscode-remote.remote-containers": [
"resolvers",
"workspaceTrust",
@@ -164,15 +156,18 @@
"documentFiltersExclusive"
],
"GitHub.vscode-pull-request-github": [
"tokenInformation"
"tokenInformation",
"commentsResolvedState",
"badges",
"contribViewSize"
],
"GitHub.copilot": [
"inlineCompletions",
"textDocumentNotebook"
"inlineCompletionsNew",
"inlineCompletionsAdditions"
],
"GitHub.copilot-nightly": [
"inlineCompletions",
"textDocumentNotebook"
"inlineCompletionsNew",
"inlineCompletionsAdditions"
],
"GitHub.remotehub": [
"contribRemoteHelp",
@@ -184,12 +179,10 @@
"fileSearchProvider",
"quickPickSortByLabel",
"workspaceTrust",
"resolvers",
"scmSelectedProvider",
"scmValidation",
"textSearchProvider",
"timeline",
"notebookEditor"
"timeline"
],
"GitHub.remotehub-insiders": [
"contribRemoteHelp",
@@ -201,42 +194,35 @@
"fileSearchProvider",
"quickPickSortByLabel",
"workspaceTrust",
"resolvers",
"scmSelectedProvider",
"scmValidation",
"textSearchProvider",
"timeline",
"notebookEditor"
"timeline"
],
"ms-python.gather": [
"notebookEditor",
"notebookCellExecutionState"
],
"ms-python.vscode-pylance": [
"notebookDocumentEvents",
"notebookEditor",
"notebookCellExecutionState"
],
"ms-toolsai.jupyter": [
"notebookConcatTextDocument",
"notebookControllerKind",
"notebookDebugOptions",
"notebookDeprecated",
"notebookEditor",
"notebookDocumentEvents",
"notebookEditorDecorationType",
"notebookEditorEdit",
"notebookWorkspaceEdit",
"notebookMessaging",
"notebookMime",
"notebookCellExecutionState",
"portsAttributes",
"textDocumentNotebook",
"quickPickSortByLabel"
"quickPickSortByLabel",
"notebookKernelSource",
"interactiveWindow"
],
"ms-toolsai.vscode-jupyter-powertoys": [
"notebookWorkspaceEdit"
],
"dbaeumer.vscode-eslint": [
"tabs",
"notebookDocumentEvents",
"notebookEditor",
"notebookCellExecutionState"
],
"ms-vscode.azure-sphere-tools-ui": [
@@ -244,6 +230,12 @@
],
"ms-azuretools.vscode-azureappservice": [
"terminalDataWriteEvent"
],
"ms-vscode.anycode": [
"extensionsAny"
],
"ms-vscode.cpptools": [
"terminalDataWriteEvent"
]
},
"extensionKind": {

View File

@@ -15,8 +15,6 @@ else
sudo snap install --channel stable --classic snapcraft
echo "${SNAP_STORE_LOGIN}" | snapcraft login --with -
echo "Architecture: ${ARCHITECTURE}"
SNAP_VERSION=$(snapcraft list-revisions codium | grep -F "stable*" | grep "${ARCHITECTURE}" | tr -s ' ' | cut -d ' ' -f 4)

View File

@@ -1,17 +1,44 @@
# mobile.events.data.microsoft.com
# vortex.data.microsoft.com
TELEMETRY_URLS="[^/]+\.data\.microsoft\.com"
REPLACEMENT="s/${TELEMETRY_URLS}/0\.0\.0\.0/g"
#!/bin/bash
#include common functions
set -ex
# list of urls to match:
# - mobile.events.data.microsoft.com
# - vortex.data.microsoft.com
SEARCH="\.data\.microsoft\.com"
REPLACEMENT="s|//[^/]+\.data\.microsoft\.com|//0\.0\.0\.0|g"
# include common functions
. ../utils.sh
if [[ "${OS_NAME}" == "osx" ]]; then
if is_gnu_sed; then
grep -rl --exclude-dir=.git -E "${TELEMETRY_URLS}" . | xargs sed -i -E "${REPLACEMENT}"
else
grep -rl --exclude-dir=.git -E "${TELEMETRY_URLS}" . | xargs sed -i '' -E "${REPLACEMENT}"
fi
if is_gnu_sed; then
replace_with_debug () {
echo "found: ${2} (`date`)"
sed -i -E "${1}" "${2}"
}
else
grep -rl --exclude-dir=.git -E "${TELEMETRY_URLS}" . | xargs sed -i -E "${REPLACEMENT}"
replace_with_debug () {
echo "found: ${2} (`date`)"
sed -i '' -E "${1}" "${2}"
}
fi
export -f replace_with_debug
d1=`date +%s`
if [[ "${OS_NAME}" == "linux" ]]; then
if [[ ${VSCODE_ARCH} == "x64" ]]; then
rg --no-ignore -l "${SEARCH}" . | xargs -I {} bash -c 'replace_with_debug "${1}" "{}"' _ "${REPLACEMENT}"
else
grep -rl --exclude-dir=.git -E "${SEARCH}" . | xargs -I {} bash -c 'replace_with_debug "${1}" "{}"' _ "${REPLACEMENT}"
fi
elif [[ "${OS_NAME}" == "osx" ]]; then
./node_modules/@vscode/ripgrep/bin/rg --no-ignore -l "${SEARCH}" . | xargs -I {} bash -c 'replace_with_debug "${1}" "{}"' _ "${REPLACEMENT}"
else
./node_modules/@vscode/ripgrep/bin/rg --no-ignore --path-separator=// -l "${SEARCH}" . | xargs -I {} bash -c 'replace_with_debug "${1}" "{}"' _ "${REPLACEMENT}"
fi
d2=`date +%s`
echo "undo_telemetry: $( echo $((${d2} - ${d1})) )s"