summarylogtreecommitdiffstats
path: root/patch.sh
diff options
context:
space:
mode:
Diffstat (limited to 'patch.sh')
-rwxr-xr-xpatch.sh55
1 files changed, 37 insertions, 18 deletions
diff --git a/patch.sh b/patch.sh
index 3f658319128e..f3326d0829db 100755
--- a/patch.sh
+++ b/patch.sh
@@ -1,21 +1,40 @@
#!/usr/bin/env sh
-if [ "${1}" = "-R" ]; then
- sed -i -e 's/^[[:blank:]]*"serviceUrl":.*/\t\t"serviceUrl": "https:\/\/open-vsx.org\/vscode\/gallery",/' \
- -e '/^[[:blank:]]*"cacheUrl/d' \
- -e 's/^[[:blank:]]*"itemUrl":.*/\t\t"itemUrl": "https:\/\/open-vsx.org\/vscode\/item"/' \
- -e '/^[[:blank:]]*"resourceUrlTemplate/d' \
- -e '/^[[:blank:]]*"controlUrl/d' \
- -e '/^[[:blank:]]*"linkProtectionTrustedDomains/d' \
- -e '/^[[:blank:]]*"documentationUrl/i\\t"linkProtectionTrustedDomains": ["https:\/\/open-vsx.org"],' \
- /usr/lib/code/product.json
-else
- sed -i -e 's/^[[:blank:]]*"serviceUrl":.*/\t\t"serviceUrl": "https:\/\/marketplace.visualstudio.com\/_apis\/public\/gallery",/' \
- -e '/^[[:blank:]]*"cacheUrl/d' \
- -e '/^[[:blank:]]*"serviceUrl/a\\t\t"cacheUrl": "https:\/\/vscode.blob.core.windows.net\/gallery\/index",' \
- -e 's/^[[:blank:]]*"itemUrl":.*/\t\t"itemUrl": "https:\/\/marketplace.visualstudio.com\/items",/' \
- -e '/^[[:blank:]]*"itemUrl/a\\t\t"resourceUrlTemplate": "https:\/\/{publisher}.vscode-unpkg.net\/{publisher}\/{name}\/{version}\/{path}",\n\t\t"controlUrl": "https:\/\/az764295.vo.msecnd.net\/extensions\/marketplace.json"' \
- -e '/^[[:blank:]]*"linkProtectionTrustedDomains/d' \
- -e '/^[[:blank:]]*"documentationUrl/i\\t"linkProtectionTrustedDomains": ["https:\/\/*.visualstudio.com", "https:\/\/*.microsoft.com", "https:\/\/aka.ms", "https:\/\/vscode-auth.github.com", "https:\/\/client-auth-staging-14a768b.herokuapp.com", "https:\/\/*.gallerycdn.vsassets.io", "https:\/\/github.com\/microsoft\/", "https:\/\/github.com\/MicrosoftDocs\/", "https:\/\/login.microsoftonline.com"],' \
- /usr/lib/code/product.json
+product_json_path="/usr/lib/code/product.json"
+
+_patch() {
+ # Patch "extensionsGallery"
+
+ # Remove original "extensionsGallery" key.
+ sed -i -z -e 's/\t"extensionsGallery.*item"\n\t},\n//' \
+ "${1}"
+
+ # Add new "extensionsGallery" key
+ # Use vim to open product.json in official release and visual select the lines of "extensionsGallery"
+ # Execute :'<,'>join
+ # Select joined line and execute :'<,'>s/\//\\\//g
+ sed -i -e '/^\t"quality/a\\t"extensionsGallery": { "nlsBaseUrl": "https:\/\/www.vscode-unpkg.net\/_lp\/", "serviceUrl": "https:\/\/marketplace.visualstudio.com\/_apis\/public\/gallery", "cacheUrl": "https:\/\/vscode.blob.core.windows.net\/gallery\/index", "itemUrl": "https:\/\/marketplace.visualstudio.com\/items", "publisherUrl": "https:\/\/marketplace.visualstudio.com\/publishers", "resourceUrlTemplate": "https:\/\/{publisher}.vscode-unpkg.net\/{publisher}\/{name}\/{version}\/{path}", "controlUrl": "https:\/\/az764295.vo.msecnd.net\/extensions\/marketplace.json", "recommendationsUrl": "https:\/\/az764295.vo.msecnd.net\/extensions\/workspaceRecommendations.json.gz" },' \
+ "${1}"
+
+
+
+ # Patch "linkProtectionTrustedDomains"
+
+ # Use vim to open product.json in official release and visual select the line of "linkProtectionTrustedDomains"
+ # Execute :'<,'>s/\//\\\//g
+ sed -i -e 's/^\t"linkProtectionTrustedDomains.*/\t"linkProtectionTrustedDomains": ["https:\/\/*.visualstudio.com", "https:\/\/*.microsoft.com", "https:\/\/aka.ms", "https:\/\/*.gallerycdn.vsassets.io", "https:\/\/github.com\/microsoft\/", "https:\/\/github.com\/MicrosoftDocs\/", "https:\/\/login.microsoftonline.com"],/' \
+ "${1}"
+}
+
+_restore() {
+ sed -i -e 's/^\t"extensionsGallery.*/\t"extensionsGallery": {\n\t\t"serviceUrl": "https:\/\/open-vsx.org\/vscode\/gallery",\n\t\t"itemUrl": "https:\/\/open-vsx.org\/vscode\/item"\n\t},/' \
+ -e 's/^\t"linkProtectionTrustedDomains.*/\t"linkProtectionTrustedDomains": ["https:\/\/open-vsx.org"],/' \
+ "${1}"
+}
+
+# Use grep -q to detect if product.json has already been patched.
+if grep -q "open-vsx" "${product_json_path}" & [ "$1" = '' ]; then
+ _patch "${product_json_path}"
+elif ! grep -q "open-vsx" "${product_json_path}" & [ "$1" = '-R' ]; then
+ _restore "${product_json_path}"
fi