code-marketplace: auto updated to 1.78.0-1

This commit is contained in:
Lilac 2023-05-15 06:23:33 +00:00
parent 9ad11aeb7f
commit ba2f9c7c5e
4 changed files with 86 additions and 0 deletions

View file

@ -0,0 +1,20 @@
# Maintainer: Sainnhe Park <sainnhe@gmail.com>
pkgname=code-marketplace
pkgver=1.78.0
pkgrel=1
pkgdesc='Enable vscode marketplace in Code OSS'
arch=('any')
url='https://marketplace.visualstudio.com/vscode'
license=('unknown')
depends=('code' 'sed' 'grep')
optdepends=('code-features: unblock some extensions specific to the official build')
install="${pkgname}.install"
source=('code-marketplace.hook'
'patch.sh')
md5sums=('2f5ebcc1795bb5eac95162059a9a496e'
'bdbc94a53d8cbdabac97054b0a2ad92b')
package() {
install -Dm 644 "${srcdir}"/code-marketplace.hook "${pkgdir}"/usr/share/libalpm/hooks/code-marketplace.hook
install -Dm 755 "${srcdir}"/patch.sh "${pkgdir}"/usr/share/code-marketplace/patch.sh
}

View file

@ -0,0 +1,10 @@
[Trigger]
Operation = Install
Operation = Upgrade
Type = Path
Target = usr/lib/code/product.json
[Action]
Description = [code-marketplace] Patching product.json...
Exec = /usr/share/code-marketplace/patch.sh
When = PostTransaction

View file

@ -0,0 +1,15 @@
post_install() {
/usr/share/code-marketplace/patch.sh
}
pre_upgrade() {
/usr/share/code-marketplace/patch.sh -R
}
post_upgrade() {
/usr/share/code-marketplace/patch.sh
}
pre_remove() {
/usr/share/code-marketplace/patch.sh -R
}

41
repo/code-marketplace/patch.sh Executable file
View file

@ -0,0 +1,41 @@
#!/usr/bin/env sh
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" },' \
"${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", "https:\/\/login.microsoftonline.com", "https:\/\/*.vscode.dev", "https:\/\/*.github.dev", "https:\/\/gh.io"],/' \
"${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"],/' \
-e '/^\t"extensionTips/d' \
"${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