Compare commits
392 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5bd755a9cc | ||
|
|
1cbc6e55bf | ||
|
|
351460f992 | ||
|
|
f7e1c11ea7 | ||
|
|
50197bbeef | ||
|
|
b319b178ea | ||
|
|
2dab7cfcdf | ||
|
|
6a86200d38 | ||
|
|
c803059121 | ||
|
|
d529fd3c20 | ||
|
|
f817226abd | ||
|
|
353c002605 | ||
|
|
3f00a255b1 | ||
|
|
23152cf50f | ||
|
|
1f31a1c27b | ||
|
|
49eb715333 | ||
|
|
bbcdc2be11 | ||
|
|
dfd7ebbf85 | ||
|
|
e087f00ff1 | ||
|
|
79bc275386 | ||
|
|
851b5f2659 | ||
|
|
e5de9c3096 | ||
|
|
3b6954231f | ||
|
|
99840540ac | ||
|
|
3103c80234 | ||
|
|
6a4668040b | ||
|
|
02755e7599 | ||
|
|
36b06dd66b | ||
|
|
33a6670cad | ||
|
|
1ef601a79b | ||
|
|
c67c2ad9f5 | ||
|
|
d164e43b78 | ||
|
|
f3ba593ae7 | ||
|
|
78b32d7931 | ||
|
|
c71f2250ce | ||
|
|
b0154c7831 | ||
|
|
23313d41ba | ||
|
|
cf48030b59 | ||
|
|
848aabfe54 | ||
|
|
10a0cb4b30 | ||
|
|
0469329683 | ||
|
|
6acd2fbfe1 | ||
|
|
38810539a7 | ||
|
|
34b399c05a | ||
|
|
b0ff3b4f34 | ||
|
|
ca2dc5fcaf | ||
|
|
962326e182 | ||
|
|
d3371f8aab | ||
|
|
0f5a7d4a1b | ||
|
|
02cc193086 | ||
|
|
e564685c1e | ||
|
|
85cbd0b0f2 | ||
|
|
b748657b09 | ||
|
|
db02ad1133 | ||
|
|
573c0230c5 | ||
|
|
bb483f44e2 | ||
|
|
3fa3f18d91 | ||
|
|
ef1ce60ad8 | ||
|
|
a6da364b3c | ||
|
|
a8964122dc | ||
|
|
f1dd2cf1cc | ||
|
|
108166f640 | ||
|
|
07877c5e12 | ||
|
|
5439ac0757 | ||
|
|
9c2f61b79c | ||
|
|
0d433893b7 | ||
|
|
bf524a9c2c | ||
|
|
d862b86a27 | ||
|
|
8aa9de17b1 | ||
|
|
72363757b3 | ||
|
|
96332714ae | ||
|
|
a5506b975c | ||
|
|
b175fd43eb | ||
|
|
b1970e82af | ||
|
|
23160ad483 | ||
|
|
51ee66e019 | ||
|
|
2abbfed911 | ||
|
|
8187c7fd7f | ||
|
|
53b071366b | ||
|
|
98372f9d1e | ||
|
|
30313a518b | ||
|
|
2ecbd09c2b | ||
|
|
66551077f8 | ||
|
|
e1b4583cf9 | ||
|
|
bbc6e8f4b7 | ||
|
|
d29337f328 | ||
|
|
ca52c1cfda | ||
|
|
c7cc061077 | ||
|
|
34b5dbce34 | ||
|
|
cb8d774c77 | ||
|
|
6a5ba92d10 | ||
|
|
643b0f869d | ||
|
|
7d636ce0f7 | ||
|
|
5b3b76e65b | ||
|
|
64e101b963 | ||
|
|
527ce5efd2 | ||
|
|
8bb2491be1 | ||
|
|
63244816b6 | ||
|
|
e0944b1769 | ||
|
|
28ccd0bf00 | ||
|
|
226c019adf | ||
|
|
2a742910df | ||
|
|
15fac881ce | ||
|
|
d5f6866981 | ||
|
|
b00ffc8610 | ||
|
|
52ef4eb7be | ||
|
|
efe3f6b103 | ||
|
|
a8cd9694ee | ||
|
|
d8bc3e7963 | ||
|
|
d636a66828 | ||
|
|
97db123287 | ||
|
|
10815a5b2d | ||
|
|
656a02b50f | ||
|
|
3d016f4f48 | ||
|
|
9b538aebc3 | ||
|
|
d8a91cf13e | ||
|
|
c43a4e5136 | ||
|
|
336bfce8fd | ||
|
|
62a7dce09d | ||
|
|
b07aee0b20 | ||
|
|
73c8e12182 | ||
|
|
96312bd7f4 | ||
|
|
0ead786b6c | ||
|
|
ccd219e96e | ||
|
|
e7c96e706d | ||
|
|
93bfe2e2d4 | ||
|
|
479d4c3dbc | ||
|
|
51824a83d1 | ||
|
|
b99e93970e | ||
|
|
3a15ad9778 | ||
|
|
edc9773c9c | ||
|
|
88f37a102a | ||
|
|
6c87e3a778 | ||
|
|
cd353df55a | ||
|
|
c4b4194df7 | ||
|
|
59ad206f9e | ||
|
|
2089830d92 | ||
|
|
78ba01d3a0 | ||
|
|
c3f50a8efe | ||
|
|
3e50a25606 | ||
|
|
f8eeb2b698 | ||
|
|
54b4d842ad | ||
|
|
99f27fe9ed | ||
|
|
6979e526e3 | ||
|
|
bc03b9d591 | ||
|
|
997e1dd61f | ||
|
|
ddedf6a08a | ||
|
|
e961f14310 | ||
|
|
241d311adf | ||
|
|
52d63a9a7d | ||
|
|
b17312f534 | ||
|
|
0b282757ce | ||
|
|
8f0532f4b6 | ||
|
|
97a74cc61b | ||
|
|
9c2cc86935 | ||
|
|
6fba344a63 | ||
|
|
b41635b951 | ||
|
|
f8b17d45a8 | ||
|
|
f103b1beaa | ||
|
|
a0eebe5775 | ||
|
|
aec3519ea7 | ||
|
|
c9ae0c605f | ||
|
|
5d26e9d7f6 | ||
|
|
96d79aeb70 | ||
|
|
baf7e684ee | ||
|
|
c9e9f28130 | ||
|
|
9ed4558b54 | ||
|
|
6dd97cce54 | ||
|
|
22001fcae5 | ||
|
|
e6fe0cddd6 | ||
|
|
1f5761ccea | ||
|
|
c12606a81b | ||
|
|
60de1450bc | ||
|
|
364838eaba | ||
|
|
5298b33e68 | ||
|
|
820ca10fe4 | ||
|
|
a8372aa348 | ||
|
|
7b13dd63e7 | ||
|
|
d001f1875e | ||
|
|
384789005b | ||
|
|
9dd4e545c0 | ||
|
|
29f3534b16 | ||
|
|
9bfe5e3b73 | ||
|
|
d547c16120 | ||
|
|
78aa52ea05 | ||
|
|
70139913d6 | ||
|
|
768ea6778e | ||
|
|
c7187ed00f | ||
|
|
0039e51b87 | ||
|
|
5811dab0eb | ||
|
|
17cb8b1d4e | ||
|
|
37851b2f04 | ||
|
|
b3e6c6dbe1 | ||
|
|
aeec80474f | ||
|
|
02b97b5d79 | ||
|
|
10ec7d8e2b | ||
|
|
b8b5dc9aeb | ||
|
|
86f076f68c | ||
|
|
5b15d72328 | ||
|
|
e0c124d19e | ||
|
|
2b1a4ff693 | ||
|
|
05819c1f79 | ||
|
|
4782bb2ead | ||
|
|
3909371fa4 | ||
|
|
cb5e22e005 | ||
|
|
eb45bbea1f | ||
|
|
098bdc3f31 | ||
|
|
2203dfbf0f | ||
|
|
0a20f8159a | ||
|
|
e961dde624 | ||
|
|
16eb6e4c83 | ||
|
|
bbf621e19f | ||
|
|
47ca41068c | ||
|
|
7ce133a5c4 | ||
|
|
3a593d2958 | ||
|
|
e74de8ff37 | ||
|
|
2d58d3bd1e | ||
|
|
90ee5b2d41 | ||
|
|
5b825c8bf7 | ||
|
|
bfb4be2930 | ||
|
|
dfb373330c | ||
|
|
8b978a5a6f | ||
|
|
679a8d97b6 | ||
|
|
e13b9f35ad | ||
|
|
30d6dfd70a | ||
|
|
fa7f150521 | ||
|
|
6edd4e85a9 | ||
|
|
86e4055bfe | ||
|
|
090cf497e2 | ||
|
|
23bd025392 | ||
|
|
dad2a98413 | ||
|
|
5ffd1aa4b0 | ||
|
|
f9c7df01ad | ||
|
|
a9b505f228 | ||
|
|
3c5eb104f9 | ||
|
|
c478ef85c2 | ||
|
|
32583f3bd7 | ||
|
|
ac4bb3f987 | ||
|
|
3471de4d49 | ||
|
|
45af9e614b | ||
|
|
9f3136fd35 | ||
|
|
07ec36ff69 | ||
|
|
8c04967b7e | ||
|
|
1082261042 | ||
|
|
4c7c82fe06 | ||
|
|
138269d3cf | ||
|
|
661608ed6f | ||
|
|
6d33f26e3b | ||
|
|
cab264b133 | ||
|
|
d199e65310 | ||
|
|
e51b9e5ecd | ||
|
|
0a2378dbdc | ||
|
|
a1985c9eb9 | ||
|
|
401a51153f | ||
|
|
7797f694da | ||
|
|
0ce7a3b40a | ||
|
|
a08e243eb1 | ||
|
|
b4e9c1dcb6 | ||
|
|
82fb8829fe | ||
|
|
bfe2693d76 | ||
|
|
a8d355c276 | ||
|
|
608edd6776 | ||
|
|
f88cffb39f | ||
|
|
a975177d1d | ||
|
|
dacb759766 | ||
|
|
8b1f6fe734 | ||
|
|
8c5166cd56 | ||
|
|
2c98e24e2d | ||
|
|
30fe5197db | ||
|
|
266448613e | ||
|
|
c92c61a50b | ||
|
|
fc9c33acf4 | ||
|
|
feb979db54 | ||
|
|
e0ac293279 | ||
|
|
9a046ea3a0 | ||
|
|
137a891882 | ||
|
|
535861eec8 | ||
|
|
101bda7072 | ||
|
|
d21ea7de56 | ||
|
|
99038981dc | ||
|
|
15260f4801 | ||
|
|
a7a52b02d5 | ||
|
|
024c056cf3 | ||
|
|
a5782f621b | ||
|
|
2bf1841c64 | ||
|
|
d8f341db38 | ||
|
|
aae9794677 | ||
|
|
96e27cd232 | ||
|
|
6142ac4170 | ||
|
|
1435710c16 | ||
|
|
229274f9c8 | ||
|
|
e974e22d99 | ||
|
|
a5cc6c090e | ||
|
|
b012b6c1d0 | ||
|
|
07ac47b131 | ||
|
|
27d8a66386 | ||
|
|
b50c86a143 | ||
|
|
22f80b365c | ||
|
|
46601d6f64 | ||
|
|
67d5db8019 | ||
|
|
eeedf51ab3 | ||
|
|
fd8e968c1e | ||
|
|
51a653b6e4 | ||
|
|
add743eead | ||
|
|
14d40ad96f | ||
|
|
9f92b7f073 | ||
|
|
c25fd7717b | ||
|
|
3895b385eb | ||
|
|
db359f0711 | ||
|
|
22c41976f2 | ||
|
|
80f4d30638 | ||
|
|
e88869bbf4 | ||
|
|
d695216317 | ||
|
|
e4b87c1a0e | ||
|
|
d6fcc82584 | ||
|
|
34aa7b0d89 | ||
|
|
bc0826868c | ||
|
|
c2c3525405 | ||
|
|
de31868635 | ||
|
|
5004481ea9 | ||
|
|
f63fbe4292 | ||
|
|
8111747fab | ||
|
|
765a4b63ad | ||
|
|
0355e7013c | ||
|
|
f87035e3e6 | ||
|
|
6367d32c32 | ||
|
|
d1adafac84 | ||
|
|
fb100d772b | ||
|
|
f1ac78e6ed | ||
|
|
42bc96ba21 | ||
|
|
40f5d1398b | ||
|
|
000ede1322 | ||
|
|
0ca513930d | ||
|
|
6788101859 | ||
|
|
687d644b41 | ||
|
|
cb04b93044 | ||
|
|
ed126b5cb2 | ||
|
|
fabacf1c1a | ||
|
|
8347fbcdc8 | ||
|
|
5dd8c0e6da | ||
|
|
d03f6d5442 | ||
|
|
35f5a5a264 | ||
|
|
ccb2ee47b3 | ||
|
|
a3465c0f1b | ||
|
|
cb031ffd75 | ||
|
|
c440844e99 | ||
|
|
26a5bfcab8 | ||
|
|
e379b37110 | ||
|
|
4612db050a | ||
|
|
2c61228528 | ||
|
|
7b2c725cac | ||
|
|
a8b43ff2a5 | ||
|
|
588db890f0 | ||
|
|
08d8ad26ab | ||
|
|
1501d185c2 | ||
|
|
2fdaec5163 | ||
|
|
818097ca7e | ||
|
|
845f748de5 | ||
|
|
2ea6d93325 | ||
|
|
98a9a1b231 | ||
|
|
3bba077e1e | ||
|
|
6f3791a5ca | ||
|
|
1a3eba742f | ||
|
|
75bbad9a0d | ||
|
|
31b80c8c09 | ||
|
|
e891ce2dcd | ||
|
|
8d8c0cd3fc | ||
|
|
6963e0db5e | ||
|
|
51413d265e | ||
|
|
df742b9ee9 | ||
|
|
cfc5bbd51e | ||
|
|
d3a7edee21 | ||
|
|
6bf38fa316 | ||
|
|
d203723bd5 | ||
|
|
880f505515 | ||
|
|
8b57482521 | ||
|
|
6d1b1c06bc | ||
|
|
112b141bf2 | ||
|
|
53b56dbebb | ||
|
|
cd6e1485b5 | ||
|
|
f787c21b3c | ||
|
|
74e4592337 | ||
|
|
eb6ca84e21 | ||
|
|
9afbbd903b | ||
|
|
e21f491ecd | ||
|
|
5b1a4a1950 | ||
|
|
91f1d58dd7 | ||
|
|
d358627a19 | ||
|
|
06cc20f63b | ||
|
|
88503d7855 | ||
|
|
b44a4f56c4 | ||
|
|
72781d2f52 |
25
.editorconfig
Normal file
@@ -0,0 +1,25 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
tab_width = 2
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[*.sh]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[*.{yml,yaml}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[*.patch]
|
||||
trim_trailing_whitespace = false
|
||||
insert_final_newline = false
|
||||
|
||||
[*.svg]
|
||||
insert_final_newline = false
|
||||
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -30,7 +30,7 @@ A clear and concise description of what you expected to happen.
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Desktop (please complete the following information):**
|
||||
- OS: [e.g. Mac OS, Ubuntu 16.04, etc]
|
||||
- OS: [e.g. Mac OS, Ubuntu 20.04, etc]
|
||||
- Architecture [e.g. x64, ia32, arm64]
|
||||
- Version [e.g. 1.33.0]
|
||||
|
||||
|
||||
144
.github/workflows/linux.yml
vendored
Normal file
@@ -0,0 +1,144 @@
|
||||
name: linux_build
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
push:
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: ${{ matrix.image }}
|
||||
env:
|
||||
OS_NAME: 'linux'
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- vscode_arch: x64
|
||||
npm_arch: x64
|
||||
image: vscodium/vscodium-linux-build-agent:bionic-x64
|
||||
- vscode_arch: arm64
|
||||
npm_arch: arm64
|
||||
image: vscodium/vscodium-linux-build-agent:stretch-arm64
|
||||
- vscode_arch: armhf
|
||||
npm_arch: armv7l
|
||||
image: vscodium/vscodium-linux-build-agent:stretch-armhf
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Install GH
|
||||
run: ./install_gh.sh
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 14
|
||||
|
||||
- name: Install Yarn
|
||||
run: npm install -g yarn
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
run: ./check_cron_or_pr.sh
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./check_tags.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Compute cache key
|
||||
id: yarnCacheKey
|
||||
run: echo "::set-output name=value::$(node build/azure-pipelines/computeYarnCacheKey.js)"
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Get yarn cache directory path
|
||||
id: yarnCacheDirPath
|
||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Cache yarn directory
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.yarnCacheDirPath.outputs.dir }}
|
||||
key: linux-${{ matrix.npm_arch }}-yarnCacheDir-${{ steps.yarnCacheKey.outputs.value }}
|
||||
restore-keys: linux-${{ matrix.npm_arch }}-yarnCacheDir-
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
npm_config_arch: ${{ matrix.npm_arch }}
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Prepare artifacts
|
||||
run: ./prepare_artifacts.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./release.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Update versions repo
|
||||
run: ./update_version.sh
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
snap:
|
||||
needs: release
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
platform:
|
||||
- amd64
|
||||
- arm64
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Check version
|
||||
run: ./stores/snapcraft/check_version.sh
|
||||
env:
|
||||
ARCHITECTURE: ${{ matrix.platform }}
|
||||
SNAP_STORE_LOGIN: ${{ secrets.SNAP_STORE_LOGIN }}
|
||||
|
||||
- uses: docker/setup-qemu-action@v1
|
||||
with:
|
||||
image: tonistiigi/binfmt@sha256:df15403e06a03c2f461c1f7938b171fda34a5849eb63a70e2a2109ed5a778bde
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- uses: diddlesnaps/snapcraft-multiarch-action@v1
|
||||
with:
|
||||
path: stores/snapcraft
|
||||
architecture: ${{ matrix.platform }}
|
||||
id: build
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- uses: diddlesnaps/snapcraft-review-action@v1
|
||||
with:
|
||||
snap: ${{ steps.build.outputs.snap }}
|
||||
isClassic: 'true'
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- uses: snapcore/action-publish@v1
|
||||
with:
|
||||
store_login: ${{ secrets.SNAP_STORE_LOGIN }}
|
||||
snap: ${{ steps.build.outputs.snap }}
|
||||
release: stable
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
108
.github/workflows/macos.yml
vendored
Normal file
@@ -0,0 +1,108 @@
|
||||
name: macos_build
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
push:
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- vscode_arch: x64
|
||||
os: macOS-10.15
|
||||
# - vscode_arch: arm64
|
||||
# os: macOS-11
|
||||
|
||||
env:
|
||||
OS_NAME: "osx"
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 14
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: . get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
run: . check_cron_or_pr.sh
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: . check_tags.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Compute cache key
|
||||
id: yarnCacheKey
|
||||
run: echo "::set-output name=value::$(node build/azure-pipelines/computeYarnCacheKey.js)"
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Get yarn cache directory path
|
||||
id: yarnCacheDirPath
|
||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Cache yarn directory
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.yarnCacheDirPath.outputs.dir }}
|
||||
key: ${{ env.OS_NAME }}-${{ env.VSCODE_ARCH }}-yarnCacheDir-${{ steps.yarnCacheKey.outputs.value }}
|
||||
restore-keys: ${{ env.OS_NAME }}-${{ env.VSCODE_ARCH }}-yarnCacheDir-
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Sign binary
|
||||
env:
|
||||
CERTIFICATE_OSX_P12: ${{ secrets.CERTIFICATE_OSX_P12 }}
|
||||
CERTIFICATE_OSX_PASSWORD: ${{ secrets.CERTIFICATE_OSX_PASSWORD }}
|
||||
CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_ID }}
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
run: |
|
||||
if [ -d "VSCode-darwin-${VSCODE_ARCH}" ]; then # just in case the build failed
|
||||
cd "VSCode-darwin-${VSCODE_ARCH}"
|
||||
export CERTIFICATE_P12=VSCodium.p12
|
||||
echo $CERTIFICATE_OSX_P12 | base64 --decode > $CERTIFICATE_P12
|
||||
export KEYCHAIN=build.keychain
|
||||
security create-keychain -p mysecretpassword $KEYCHAIN
|
||||
security default-keychain -s $KEYCHAIN
|
||||
security unlock-keychain -p mysecretpassword $KEYCHAIN
|
||||
security import $CERTIFICATE_P12 -k $KEYCHAIN -P $CERTIFICATE_OSX_PASSWORD -T /usr/bin/codesign
|
||||
security set-key-partition-list -S apple-tool:,apple: -s -k mysecretpassword $KEYCHAIN
|
||||
codesign --deep --force --verbose --sign "$CERTIFICATE_OSX_ID" VSCodium.app
|
||||
fi
|
||||
|
||||
- name: Prepare artifacts
|
||||
run: ./prepare_artifacts.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./release.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Update versions repo
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
run: ./update_version.sh
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
|
||||
95
.github/workflows/windows.yml
vendored
Normal file
@@ -0,0 +1,95 @@
|
||||
name: windows_build
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
push:
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
windows:
|
||||
runs-on: windows-2016
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
env:
|
||||
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
||||
OS_NAME: 'windows'
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
vscode_arch: [x64, ia32, arm64]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 14
|
||||
|
||||
- name: Install Yarn
|
||||
run: npm install -g yarn
|
||||
|
||||
- name: Setup Python 2
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: '2.x'
|
||||
|
||||
- name: Clone VSCode repo
|
||||
run: ./get_repo.sh
|
||||
|
||||
- name: Check PR or cron
|
||||
run: ./check_cron_or_pr.sh
|
||||
|
||||
- name: Check existing VSCodium tags/releases
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./check_tags.sh
|
||||
if: env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Compute cache key
|
||||
id: yarnCacheKey
|
||||
run: echo "::set-output name=value::$(node build/azure-pipelines/computeYarnCacheKey.js)"
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Get yarn cache directory path
|
||||
id: yarnCacheDirPath
|
||||
run: echo "::set-output name=dir::$(yarn cache dir)"
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Cache yarn directory
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: ${{ steps.yarnCacheDirPath.outputs.dir }}
|
||||
key: ${{ env.OS_NAME }}-${{ env.VSCODE_ARCH }}-yarnCacheDir-${{ steps.yarnCacheKey.outputs.value }}
|
||||
restore-keys: ${{ env.OS_NAME }}-${{ env.VSCODE_ARCH }}-yarnCacheDir-
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
npm_config_arch: ${{ matrix.vscode_arch }}
|
||||
npm_config_target_arch: ${{ matrix.vscode_arch }}
|
||||
run: ./build.sh
|
||||
if: env.SHOULD_BUILD == 'yes'
|
||||
|
||||
- name: Prepare artifacts
|
||||
run: ./prepare_artifacts.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: ./release.sh
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
|
||||
- name: Update versions repo
|
||||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes'
|
||||
run: ./update_version.sh
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }}
|
||||
GITHUB_USERNAME: ${{ github.repository_owner }}
|
||||
|
||||
10
.gitignore
vendored
@@ -1,2 +1,10 @@
|
||||
vscode
|
||||
VS*/*
|
||||
VS*/*
|
||||
.DS_Store
|
||||
build/linux/appimage/out
|
||||
build/linux/appimage/pkg2appimage.AppDir
|
||||
build/linux/appimage/pkg2appimage-*.AppImage
|
||||
build/linux/appimage/VSCodium
|
||||
build/windows/msi/releasedir
|
||||
build/windows/rtf/Readme (Abridged).txt
|
||||
build/windows/rtf/TXT to RTF Converter.exe
|
||||
|
||||
55
.travis.yml
@@ -1,55 +0,0 @@
|
||||
matrix:
|
||||
include:
|
||||
- os: linux
|
||||
sudo: required
|
||||
env: BUILDARCH=x64
|
||||
# arm64 builds don't work yet
|
||||
# - os: linux
|
||||
# sudo: required
|
||||
# env: BUILDARCH=arm64
|
||||
- os: osx
|
||||
|
||||
language: node_js
|
||||
node_js: "10"
|
||||
|
||||
before_install:
|
||||
- curl -o- -L https://yarnpkg.com/install.sh | bash
|
||||
- export PATH="$HOME/.yarn/bin:$PATH"
|
||||
- . install_deps.sh
|
||||
- . get_repo.sh
|
||||
- . check_tags.sh
|
||||
|
||||
script:
|
||||
- ./build.sh
|
||||
- ./trigger-azure.sh
|
||||
|
||||
before_deploy:
|
||||
- ./sign_mac_app.sh
|
||||
- ./create_zip.sh
|
||||
- ./create_dmg.sh
|
||||
- ./sum.sh
|
||||
|
||||
deploy:
|
||||
provider: releases
|
||||
skip_cleanup: true
|
||||
overwrite: true
|
||||
name: $LATEST_MS_TAG
|
||||
api_key: $GITHUB_TOKEN
|
||||
file_glob: true
|
||||
file:
|
||||
- ./*.sha256
|
||||
- ./*.zip
|
||||
- ./*.tar.gz
|
||||
- ./*.dmg
|
||||
- vscode/.build/linux/deb/i386/deb/*.deb
|
||||
- vscode/.build/linux/rpm/i386/*.rpm
|
||||
- vscode/.build/linux/deb/amd64/deb/*.deb
|
||||
- vscode/.build/linux/rpm/x86_64/*.rpm
|
||||
- vscode/.build/linux/deb/arm64/deb/*.deb
|
||||
- vscode/out/*.AppImage
|
||||
on:
|
||||
all_branches: true
|
||||
condition: $SHOULD_BUILD = yes
|
||||
|
||||
after_deploy:
|
||||
- ./update_version.sh
|
||||
118
DOCS.md
@@ -3,12 +3,19 @@
|
||||
## Table of Contents
|
||||
|
||||
- [Getting all the Telemetry Out](#disable-telemetry)
|
||||
- [Replacements to Microsoft Online Services](#replacement-online-services)
|
||||
- [Extensions + Marketplace](#extensions-marketplace)
|
||||
- [How to use the VS Code Marketplace](#howto-vscode-marketplace)
|
||||
- [Proprietary Debugging Tools](#proprietary-debugging-tools)
|
||||
- [Proprietary Extensions](#proprietary-extensions)
|
||||
- [Migrating from Visual Studio Code to VSCodium](#migrating)
|
||||
- [Sign in with GitHub](#signin-github)
|
||||
- [How do I run VSCodium in portable mode?](#portable)
|
||||
- [How do I fix the default file manager?](#file-manager)
|
||||
- [How do I press and hold a key and have it repeat in VSCodium?](#press-and-hold)
|
||||
- [How do I open VSCodium from the terminal?](#terminal-support)
|
||||
- [Gentoo overlay/ebuild](#gentoo-overlay)
|
||||
- [From Linux .tar.gz](#from-linux-targz)
|
||||
- [How to build VSCodium](https://github.com/VSCodium/vscodium/blob/master/docs/build.md)
|
||||
|
||||
## <a id="disable-telemetry"></a>Getting all the Telemetry Out
|
||||
|
||||
@@ -18,7 +25,7 @@ We do however set the default `telemetry.enableCrashReporter` and `telemetry.ena
|
||||
|
||||
The instructions [here](https://code.visualstudio.com/docs/supporting/faq#_how-to-disable-telemetry-reporting) and [here](https://code.visualstudio.com/docs/supporting/faq#_how-to-disable-crash-reporting) help with explaining and toggling telemetry.
|
||||
|
||||
It is also highly recommended that you review all the settings that "use online services" by following [these instructions](https://code.visualstudio.com/docs/supporting/faq#_managing-online-services). The `@tag:usesOnlineServices` filter on the settings page will show that by default:
|
||||
It is also highly recommended that you review all the settings that "use online services" by following [these instructions](https://code.visualstudio.com/docs/getstarted/telemetry#_managing-online-services). The `@tag:usesOnlineServices` filter on the settings page will show that by default:
|
||||
|
||||
- Extensions auto check for updates and auto install updates
|
||||
- Searches within the app are sent to an online service for "natural language processing"
|
||||
@@ -26,27 +33,80 @@ It is also highly recommended that you review all the settings that "use online
|
||||
|
||||
These can all be disabled.
|
||||
|
||||
__Please note that some extensions send telemetry data to Microsoft as well. We have no control over this and can only recommend removing the extension.__
|
||||
__Please note that some extensions send telemetry data to Microsoft as well. We have no control over this and can only recommend removing the extension.__ _(For example, the C# extension `ms-vscode.csharp` sends tracking data to Microsoft.)_
|
||||
|
||||
_(For example the C# extension `ms-vscode.csharp` sends tracking data to Microsoft.)_
|
||||
### <a id="replacement-online-services"></a>Replacements to Microsoft Online Services
|
||||
|
||||
When searching the `@tag:usesOnlineServices` filter, note that while the "Update: Mode" setting description still says "The updates are fetched from a Microsoft online service", VSCodium's build script [sets the `updateUrl` field](https://github.com/VSCodium/vscodium/blob/master/prepare_vscode.sh#L36) in `product.json` to that of VSCodium's own small [update server](https://github.com/VSCodium/update-api), so enabling that setting won't actually result in any calls to Microsoft servers.
|
||||
|
||||
Likewise, while the descriptions for "Extensions: Auto Check Updates" and "Extensions: Auto Update" include the same phrase, VSCodium [replaces](https://github.com/VSCodium/vscodium/blob/master/prepare_vscode.sh#L42) the Visual Studio Marketplace with Open VSX, so these settings won't call Microsoft, either.
|
||||
|
||||
## <a id="extensions-marketplace"></a>Extensions + Marketplace
|
||||
|
||||
Until something more open comes around, we use the Microsoft Marketplace/Extensions in the `product.json` file. Those links are licensed under MIT as per [the comments on this issue.](https://github.com/Microsoft/vscode/issues/31168#issuecomment-317319063)
|
||||
The `product.json` file is set up to use [open-vsx.org](https://open-vsx.org/) as extension gallery, which has an [adapter](https://github.com/eclipse/openvsx/wiki/Using-Open-VSX-in-VS-Code) to the Marketplace API used by VS Code. Since that is a rather new project, you will likely miss some extensions you know from the VS Code Marketplace. You have the following options to obtain such missing extensions:
|
||||
|
||||
If you use the [code-settings-sync](https://github.com/shanalikhan/code-settings-sync) extension, you may have [an issue](https://github.com/VSCodium/vscodium/issues/72) installing extensions (via the plugin). Refer to [this workaround](https://github.com/shanalikhan/code-settings-sync/issues/668#issuecomment-462065341) to get it working properly.
|
||||
* Ask the extension maintainers to publish to [open-vsx.org](https://open-vsx.org/) in addition to the VS Code Marketplace. The publishing process is documented in the [Open VSX Wiki](https://github.com/eclipse/openvsx/wiki/Publishing-Extensions).
|
||||
* Create a pull request to [this repository](https://github.com/open-vsx/publish-extensions) to have the [@open-vsx](https://github.com/open-vsx) service account publish the extensions for you.
|
||||
* Download and [install the vsix files](https://code.visualstudio.com/docs/editor/extension-gallery#_install-from-a-vsix).
|
||||
|
||||
### Proprietary Debugging Tools
|
||||
See [this article](https://www.gitpod.io/blog/open-vsx/) for more information on the motivation behind Open VSX.
|
||||
|
||||
The debugger provided with Microsoft's [C# extension](https://github.com/OmniSharp/omnisharp-vscode) as well as the (Windows) debugger provided with their [C++ extension](https://github.com/Microsoft/vscode-cpptools) are very restrictively licensed to only work with the offical Visual Studio Code build. See [this comment in the C# extension repo](https://github.com/OmniSharp/omnisharp-vscode/issues/2491#issuecomment-418811364) and [this comment in the C++ extension repo](https://github.com/Microsoft/vscode-cpptools/issues/21#issuecomment-248349017).
|
||||
### <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).
|
||||
|
||||
With the following environment variables:
|
||||
- `VSCODE_GALLERY_SERVICE_URL='https://marketplace.visualstudio.com/_apis/public/gallery'`
|
||||
- `VSCODE_GALLERY_CACHE_URL='https://vscode.blob.core.windows.net/gallery/index'`
|
||||
- `VSCODE_GALLERY_ITEM_URL='https://marketplace.visualstudio.com/items'`
|
||||
- `VSCODE_GALLERY_CONTROL_URL=''`
|
||||
- `VSCODE_GALLERY_RECOMMENDATIONS_URL=''`
|
||||
|
||||
Or by creating a custom `product.json` at the following location:
|
||||
- Windows: `%APPDATA%\VSCodium` or `%USERPROFILE%\AppData\Roaming\VSCodium`
|
||||
- macOS: `~/Library/Application Support/VSCodium`
|
||||
- Linux: `$XDG_CONFIG_HOME/VSCodium` or `~/.config/VSCodium`
|
||||
|
||||
with the content:
|
||||
|
||||
```json
|
||||
{
|
||||
"extensionsGallery": {
|
||||
"serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery",
|
||||
"cacheUrl": "https://vscode.blob.core.windows.net/gallery/index",
|
||||
"itemUrl": "https://marketplace.visualstudio.com/items",
|
||||
"controlUrl": "",
|
||||
"recommendationsUrl": ""
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### <a id="proprietary-debugging-tools"></a>Proprietary Debugging Tools
|
||||
|
||||
The debugger provided with Microsoft's [C# extension](https://github.com/OmniSharp/omnisharp-vscode) as well as the (Windows) debugger provided with their [C++ extension](https://github.com/Microsoft/vscode-cpptools) are very restrictively licensed to only work with the official Visual Studio Code build. See [this comment in the C# extension repo](https://github.com/OmniSharp/omnisharp-vscode/issues/2491#issuecomment-418811364) and [this comment in the C++ extension repo](https://github.com/Microsoft/vscode-cpptools/issues/21#issuecomment-248349017).
|
||||
|
||||
A workaround exists to get debugging working in C# projects, by using Samsung's opensource [netcoredbg](https://github.com/Samsung/netcoredbg) package. See [this comment](https://github.com/VSCodium/vscodium/issues/82#issue-409806641) for instructions on how to set that up.
|
||||
|
||||
### <a id="proprietary-extensions"></a>Proprietary Extensions
|
||||
|
||||
Like the debuggers mentioned above, some extensions you may find in the marketplace (like the [Remote Development Extensions](https://code.visualstudio.com/docs/remote/remote-overview)) only function with the official Visual Studio Code build. You can work around this by adding the extension's internal ID (found on the extension's page) to the `extensionAllowedProposedApi` property of the product.json in your VSCodium installation. For example:
|
||||
|
||||
```json
|
||||
"extensionAllowedProposedApi": [
|
||||
// ...
|
||||
"ms-vscode-remote.vscode-remote-extensionpack",
|
||||
"ms-vscode-remote.remote-wsl",
|
||||
// ...
|
||||
],
|
||||
```
|
||||
|
||||
In some cases, the above change won't help because the extension is hard-coded to only work with the official Visual Studio Code product.
|
||||
|
||||
## <a id="migrating"></a>Migrating from Visual Studio Code to VSCodium
|
||||
|
||||
VSCodium (and a freshly cloned copy of vscode built from source) stores its extension files in `~/.vscode-oss`. So if you currently have Visual Studio Code installed, your extensions won't automatically populate. You can reinstall your extensions from the Marketplace in VSCodium, or copy the `extensions` from `~/.vscode/extensions` to `~/.vscode-oss/extensions`.
|
||||
|
||||
Visual Studio Code stores its `keybindings.json` and `settings.json` file in the these locations:
|
||||
Visual Studio Code stores its `keybindings.json` and `settings.json` file in these locations:
|
||||
|
||||
- __Windows__: `%APPDATA%\Code\User`
|
||||
- __macOS__: `$HOME/Library/Application Support/Code/User`
|
||||
@@ -64,10 +124,37 @@ To copy your settings manually:
|
||||
- Click the three dots `...` and choose 'Open settings.json'
|
||||
- Copy the contents of settings.json into the same place in VSCodium
|
||||
|
||||
## <a id="portable"></a>How do I run VSCodium in portable mode?
|
||||
You can follow the [Portable Mode instructions](https://code.visualstudio.com/docs/editor/portable) from the Visual Studio Code website. For Windows and Linux the instructions can be followed as written. For Mac OS, portable mode is enabled by the existence of a specially named folder. For Visual Studio Code that folder name is `code-portable-data`. For VSCodium, that folder name is `vscodium-portable-data`.
|
||||
## <a id="signin-github"></a>Sign in with GitHub
|
||||
|
||||
So to enable portable mode for VSCodium on Mac OS, follow the instructions outlined in the link above, but create a folder named `vscodium-portable-data` instead of `code-portable-data`.
|
||||
In VSCodium, `Sign in with GitHub` is using a Personal Access Token.<br />
|
||||
Follow the documentation https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token to create your token.<br />
|
||||
Select the scopes dependending of the extension which need access to GitHub. (GitLens requires the `repo` scope.)
|
||||
|
||||
### Linux
|
||||
|
||||
If you are getting the error `Writing login information to the keychain failed with error 'The name org.freedesktop.secrets was not provided by any .service files'.`, you need to install the package `gnome-keyring`.
|
||||
|
||||
## <a id="portable"></a>How do I run VSCodium in portable mode?
|
||||
You can follow the [Portable Mode instructions](https://code.visualstudio.com/docs/editor/portable) from the Visual Studio Code website.
|
||||
- **Windows** / **Linux** : the instructions can be followed as written.
|
||||
- **macOS** : portable mode is enabled by the existence of a specially named folder. For Visual Studio Code that folder name is `code-portable-data`. For VSCodium, that folder name is `codium-portable-data`. So to enable portable mode for VSCodium on Mac OS, follow the instructions outlined in the [link above](https://code.visualstudio.com/docs/editor/portable), but create a folder named `codium-portable-data` instead of `code-portable-data`.
|
||||
|
||||
## <a id="file-manager"></a>How do I fix the default file manager (Linux)?
|
||||
|
||||
In some case, VSCodium becomes the file manager used to open directories (instead of apps like Dolphin or Nautilus).<br />
|
||||
It's due to that no application was defined as the default file manager and so the system is using the latest capable application.
|
||||
|
||||
To set the default app, create the file `~/.config/mimeapps.list` with the content like:
|
||||
```
|
||||
[Default Applications]
|
||||
inode/directory=org.gnome.Nautilus.desktop;
|
||||
```
|
||||
|
||||
You can find your regular file manager with the command:
|
||||
```
|
||||
> grep directory /usr/share/applications/mimeinfo.cache
|
||||
inode/directory=codium.desktop;org.gnome.Nautilus.desktop;
|
||||
```
|
||||
|
||||
## <a id="press-and-hold"></a>How do I press and hold a key and have it repeat in VSCodium (Mac)?
|
||||
|
||||
@@ -79,6 +166,7 @@ $ defaults write com.visualstudio.code.oss ApplePressAndHoldEnabled -bool false
|
||||
|
||||
## <a id="terminal-support"></a>How do I open VSCodium from the terminal?
|
||||
|
||||
For MacOS and Windows:
|
||||
- Go to the command palette (View | Command Palette...)
|
||||
- Choose `Shell command: Install 'codium' command in PATH`.
|
||||
|
||||
@@ -93,6 +181,8 @@ This allows you to open files or directories in VSCodium directly from your term
|
||||
|
||||
Feel free to alias this command to something easier to type in your shell profile (e.g. `alias code=codium`).
|
||||
|
||||
## <a id="gentoo-overlay"></a>Gentoo ebuild/overlay
|
||||
On Linux, when installed with a package manager, `codium` has been installed in your `PATH`.
|
||||
|
||||
There is an external Gentoo overlay with a working ebuild to install VSCodium, provided by [@wolviecb](https://github.com/wolviecb/). The overlay can be found [here](https://github.com/wolviecb/overlay).
|
||||
### <a id="from-linux-targz"></a>From Linux .tar.gz
|
||||
|
||||
When the archive `VSCodium-linux-<arch>-<version>.tar.gz` is extracted, the main entry point for VSCodium is `./bin/codium`.
|
||||
|
||||
4
LICENSE
@@ -1,6 +1,8 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2018 Peter Squicciarini
|
||||
Copyright (c) 2018-present The VSCodium contributors
|
||||
Copyright (c) 2018-present Peter Squicciarini
|
||||
Copyright (c) 2015-present Microsoft Corporation
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
96
README.md
@@ -2,16 +2,17 @@
|
||||
<br />
|
||||
<img src="./src/resources/linux/code.png" alt="VSCodium Logo" width="200"/>
|
||||
<h1>VSCodium</h1>
|
||||
<h3>Free/Libre Open Source Software Binaries of VSCode</h3>
|
||||
<h3>Free/Libre Open Source Software Binaries of VS Code</h3>
|
||||
</div>
|
||||
|
||||
<div id="badges" align="center">
|
||||
|
||||
[](https://github.com/vscodium/vscodium/releases)
|
||||
[](https://github.com/vscodium/vscodium/releases)
|
||||
[](https://dev.azure.com/vscodium/VSCodium/_build?definitionId=1)
|
||||
[](https://travis-ci.com/VSCodium/vscodium)
|
||||
[](https://github.com/VSCodium/vscodium/blob/master/LICENSE)
|
||||
[](https://gitter.im/VSCodium/Lobby)
|
||||
[](https://snapcraft.io/codium)
|
||||
[](https://snapcraft.io/codium)
|
||||
|
||||
</div>
|
||||
|
||||
@@ -20,14 +21,17 @@
|
||||
## Table of Contents
|
||||
- [Download/Install](#download-install)
|
||||
- [Install with Brew](#install-with-brew)
|
||||
- [Install with Windows Package Manager (WinGet)](#install-with-winget)
|
||||
- [Install with Chocolatey](#install-with-choco)
|
||||
- [Install with Scoop](#install-with-scoop)
|
||||
- [Install with snap](#install-with-snap)
|
||||
- [Install with Package Manager](#install-with-package-manager)
|
||||
- [Install on Arch Linux](#install-on-arch-linux)
|
||||
- [Flatpak Option](#flatpak)
|
||||
- [Build](#build)
|
||||
- [Why Does This Exist](#why)
|
||||
- [More Info](#more-info)
|
||||
- [Supported OS](#supported-os)
|
||||
- [Supported Platforms](#supported-platforms)
|
||||
|
||||
## <a id="download-install"></a>Download/Install
|
||||
:tada: :tada: [Download latest release here](https://github.com/VSCodium/vscodium/releases) :tada: :tada:
|
||||
@@ -37,10 +41,16 @@
|
||||
#### <a id="install-with-brew"></a>Install with Brew (Mac)
|
||||
If you are on a Mac and have [Homebrew](https://brew.sh/) installed:
|
||||
```bash
|
||||
brew cask install vscodium
|
||||
brew install --cask vscodium
|
||||
```
|
||||
|
||||
_Note for Mac OS X Mojave users: if you see "App can't be opened because Apple cannot check it for malicious software" when opening VSCodium the first time, you can right-click the application and choose Open. This should only be required the first time opening on Mojave._
|
||||
_Note for Mac macOS Mojave users: if you see "App can't be opened because Apple cannot check it for malicious software" when opening VSCodium the first time, you can right-click the application and choose Open. This should only be required the first time opening on Mojave._
|
||||
|
||||
#### <a id="install-with-winget"></a>Install with Windows Package Manager (WinGet)
|
||||
If you use Windows and have [Windows Package Manager](https://github.com/microsoft/winget-cli) installed:
|
||||
```bash
|
||||
winget install vscodium
|
||||
```
|
||||
|
||||
#### <a id="install-with-choco"></a>Install with Chocolatey (Windows)
|
||||
If you use Windows and have [Chocolatey](https://chocolatey.org) installed (thanks to [@Thilas](https://github.com/Thilas)):
|
||||
@@ -55,33 +65,50 @@ scoop bucket add extras
|
||||
scoop install vscodium
|
||||
```
|
||||
|
||||
#### <a id="install-with-package-manager"></a>Install with Package Manager (Linux)
|
||||
You can always install using the downloads (deb, rpm, tar) on the [releases page](https://github.com/VSCodium/vscodium/releases), but you can also install using your favorite package manager and get automatic updates. [@paulcarroty](https://github.com/paulcarroty) has set up a repository with instructions [here](https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo). Any issues installing VSCodium using your package manager should be directed to that repository's issue tracker.
|
||||
#### <a id="install-with-snap"></a>Install with snap (GNU/Linux)
|
||||
VSCodium is available in the [Snap Store](https://snapcraft.io/) as [Codium](https://snapcraft.io/codium), thanks to the help of the [Snapcrafters](https://github.com/snapcrafters/codium) community.
|
||||
If your GNU/Linux distribution has support for [snaps](https://snapcraft.io/docs/installing-snapd):
|
||||
```bash
|
||||
snap install codium --classic
|
||||
```
|
||||
|
||||
#### <a id="install-with-package-manager"></a>Install with Package Manager (GNU/Linux)
|
||||
You can always install using the downloads (deb, rpm, tar) on the [releases page](https://github.com/VSCodium/vscodium/releases), but you can also install using your favorite package manager and get automatic updates. [@paulcarroty](https://github.com/paulcarroty) has set up a repository with instructions [here](https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo). Any issues installing VSCodium using your package manager should be directed to that repository's issue tracker.
|
||||
|
||||
#### <a id="install-on-arch-linux"></a>Install on Arch Linux
|
||||
VSCodium is available in [AUR](https://wiki.archlinux.org/index.php/Arch_User_Repository) as package [vscodium-bin](https://aur.archlinux.org/packages/vscodium-bin/), maintained by [@plague-doctor](https://github.com/plague-doctor).
|
||||
VSCodium is available in [AUR](https://wiki.archlinux.org/index.php/Arch_User_Repository) as package [vscodium-bin](https://aur.archlinux.org/packages/vscodium-bin/), maintained by [@binex-dsk](https://github.com/binex-dsk). An alternative package [vscodium-git](https://aur.archlinux.org/packages/vscodium-git/), maintained by [@cedricroijakkers](https://github.com/cedricroijakkers), is also available should you wish to compile from source yourself.
|
||||
|
||||
#### <a id="flatpak"></a>Flatpak Option (Linux)
|
||||
VSCodium is not available as a Flatpak app, but [@amtlib-dot-dll](https://github.com/amtlib-dot-dll) has done significant work to package up the open source build of Visual Studio Code without telemetry, very similarly to VSCodium. That package is available [here](https://flathub.org/apps/details/com.visualstudio.code.oss) and the build repo is [here](https://github.com/flathub/com.visualstudio.code.oss).
|
||||
#### <a id="flatpak"></a>Flatpak Option (GNU/Linux)
|
||||
VSCodium is (unofficially) available as a Flatpak app [here](https://flathub.org/apps/details/com.vscodium.codium) and the build repo is [here](https://github.com/flathub/com.vscodium.codium). If your distribution has support for [flatpak](https://flathub.org), and you have enabled the [flathub repo](https://flatpak.org/setup/):
|
||||
```bash
|
||||
flatpak install flathub com.vscodium.codium
|
||||
|
||||
flatpak run com.vscodium.codium
|
||||
```
|
||||
|
||||
## <a id="build"></a>Build
|
||||
Build instructions can be found [here](https://github.com/VSCodium/vscodium/blob/master/docs/build.md)
|
||||
|
||||
## <a id="why"></a>Why Does This Exist
|
||||
This repository contains build files to generate free release binaries of Microsoft's VSCode. When we speak of "free software", we're talking about freedom, not price.
|
||||
This repository contains build files to generate free release binaries of Microsoft's VS Code. When we speak of "free software", we're talking about freedom, not price.
|
||||
|
||||
Microsoft's downloads of Visual Studio Code are licensed under [this not-FLOSS license](https://code.visualstudio.com/license) and contain telemetry/tracking. According to [this comment](https://github.com/Microsoft/vscode/issues/60#issuecomment-161792005) from a Visual Studio Code maintainer:
|
||||
Microsoft's releases of Visual Studio Code are licensed under [this not-FLOSS license](https://code.visualstudio.com/license) and contain telemetry/tracking. According to [this comment](https://github.com/Microsoft/vscode/issues/60#issuecomment-161792005) from a Visual Studio Code maintainer:
|
||||
|
||||
> When we [Microsoft] build Visual Studio Code, we do exactly this. We clone the vscode repository, we lay down a customized product.json that has Microsoft specific functionality (telemetry, gallery, logo, etc.), and then produce a build that we release under our license.
|
||||
>
|
||||
>
|
||||
> When you clone and build from the vscode repo, none of these endpoints are configured in the default product.json. Therefore, you generate a "clean" build, without the Microsoft customizations, which is by default licensed under the MIT license
|
||||
|
||||
This repo exists so that you don't have to download+build from source. The build scripts in this repo clone Microsoft's vscode repo, run the build commands, and upload the resulting binaries to [GitHub releases](https://github.com/VSCodium/vscodium/releases). __These binaries are licensed under the MIT license. Telemetry is disabled.__
|
||||
|
||||
If you want to build from source yourself, head over to [Microsoft's vscode repo](https://github.com/Microsoft/vscode) and follow their [instructions](https://github.com/Microsoft/vscode/wiki/How-to-Contribute#build-and-run). This repo exists to make it easier to get the latest version of MIT-licensed VSCode.
|
||||
If you want to build from source yourself, head over to [Microsoft's vscode repo](https://github.com/Microsoft/vscode) and follow their [instructions](https://github.com/Microsoft/vscode/wiki/How-to-Contribute#build-and-run). This repo exists to make it easier to get the latest version of MIT-licensed VS Code.
|
||||
|
||||
Microsoft's build process (which we are running to build the binaries) does download additional files. This was brought up in [Microsoft/vscode#49159](https://github.com/Microsoft/vscode/issues/49159) and [Microsoft/vscode#45978](https://github.com/Microsoft/vscode/issues/45978). These are the packages downloaded during build:
|
||||
Microsoft's build process (which we are running to build the binaries) does download additional files. This was brought up in [Microsoft/vscode#141340](https://github.com/Microsoft/vscode/issues/141340) and [Microsoft/vscode#45978](https://github.com/Microsoft/vscode/issues/45978). These are the packages downloaded during build:
|
||||
|
||||
- Extensions from the Microsoft Marketplace:
|
||||
- ms-vscode.node-debug2
|
||||
- ms-vscode.node-debug
|
||||
- [ms-vscode.references-view](https://marketplace.visualstudio.com/items?itemName=ms-vscode.references-view)
|
||||
- [ms-vscode.js-debug-companion](https://marketplace.visualstudio.com/items?itemName=ms-vscode.js-debug-companion)
|
||||
- [ms-vscode.js-debug](https://marketplace.visualstudio.com/items?itemName=ms-vscode.js-debug)
|
||||
- [ms-vscode.vscode-js-profile-table](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-js-profile-table)
|
||||
- From [Electron releases](https://github.com/electron/electron/releases) (using [gulp-atom-electron](https://github.com/joaomoreno/gulp-atom-electron))
|
||||
- electron
|
||||
- ffmpeg
|
||||
@@ -91,25 +118,34 @@ Microsoft's build process (which we are running to build the binaries) does down
|
||||
### Documentation
|
||||
For more information on getting all the telemetry disabled and tips for migrating from Visual Studio Code to VSCodium, have a look at this [Docs](https://github.com/VSCodium/vscodium/blob/master/DOCS.md) page.
|
||||
|
||||
### Extension Licensing
|
||||
### Extensions and the Marketplace
|
||||
According to the VS Code Marketplace [Terms of Use](https://aka.ms/vsmarketplace-ToU), _you may only install and use Marketplace Offerings with Visual Studio Products and Services._ For this reason, VSCodium uses [open-vsx.org](https://open-vsx.org/), an open source registry for VS Code extensions. See the [Extensions + Marketplace](https://github.com/VSCodium/vscodium/blob/master/DOCS.md#extensions-marketplace) section on the Docs page for more details.
|
||||
|
||||
Please note that some Visual Studio Code extensions have licenses that restrict their use to the official Visual Studio Code builds and therefore do not work with VSCodium. See [this note](https://github.com/VSCodium/vscodium/blob/master/DOCS.md#proprietary-debugging-tools) on the Docs page for what's been found so far and possible workarounds.
|
||||
|
||||
### How are the VSCodium binaries built?
|
||||
If you would like to see the commands we run to build `vscode` into VSCodium binaries, have a look at the [`.travis.yml` file](https://github.com/VSCodium/vscodium/blob/master/.travis.yml) (for Linux and OS X builds) and the [`win32-build.yml` file](https://github.com/VSCodium/vscodium/blob/master/win32-build.yml) (for Windows builds). These build files call all the other scripts in the repo. If you find something that doesn't make sense, feel free to ask about it [on Gitter](https://gitter.im/VSCodium/Lobby).
|
||||
If you would like to see the commands we run to build `vscode` into VSCodium binaries, have a look at the workflow files in `.github/workflows` for Windows, GNU/Linux and macOS. These build files call all the other scripts in the repo. If you find something that doesn't make sense, feel free to ask about it [on Gitter](https://gitter.im/VSCodium/Lobby).
|
||||
|
||||
The builds are run every day, but exit early if there isn't a new release from Microsoft. To examine the build logs, go [here for Linux / OS X](https://travis-ci.com/VSCodium/vscodium) and [here for Windows](https://dev.azure.com/vscodium/VSCodium/_build?definitionId=1)
|
||||
The builds are run every day, but exit early if there isn't a new release from Microsoft.
|
||||
|
||||
## <a id="supported-os"></a>Supported OS
|
||||
- [x] OS X (`zip`, `dmg`)
|
||||
- [x] Linux x64 (`deb`, `rpm`, `AppImage`, `tar.gz`)
|
||||
- [x] Linux x86 (`deb`, `rpm`, `tar.gz`)
|
||||
- [x] Windows x64
|
||||
- [x] Windows x86
|
||||
|
||||
The ARM architecture is not currently supported but is being worked on.
|
||||
## <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).
|
||||
- [x] macOS (`zip`, `dmg`) OS X 10.10 or newer x64
|
||||
- [x] macOS (`zip`, `dmg`) macOS 11.0 or newer arm64 via x64 emulation, see [status issue](https://github.com/VSCodium/vscodium/issues/597)
|
||||
- [x] GNU/Linux x64 (`deb`, `rpm`, `AppImage`, `tar.gz`)
|
||||
- [x] GNU/Linux x86 (`deb`, `rpm`, `tar.gz`) ([up to v1.35.1](https://code.visualstudio.com/updates/v1_36#_linux-32bit-support-ends))
|
||||
- [x] GNU/Linux arm64 (`deb`, `tar.gz`)
|
||||
- [x] GNU/Linux armhf (`deb`, `tar.gz`)
|
||||
- [x] Windows 7 or newer x64
|
||||
- [x] Windows 7 or newer x86
|
||||
- [x] Windows 10 arm64
|
||||
|
||||
## <a id="donate"></a>Donate
|
||||
If you would like to support the development of VSCodium, feel free to send BTC to `3PgjE95yzBDTrSPxPiqoxSgZFuKPPAix1N`.
|
||||
|
||||
Special thanks to:
|
||||
- @estatra for the latest logo
|
||||
- @jaredreich for the previous logo
|
||||
|
||||
## <a id="license"></a>License
|
||||
MIT
|
||||
[MIT](https://github.com/VSCodium/vscodium/blob/master/LICENSE)
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
# Based on
|
||||
# https://github.com/AppImage/pkg2appimage/blob/master/recipes/VSCode.yml
|
||||
#
|
||||
# On a Debian/Ubuntu system:
|
||||
# wget -c "https://github.com/AppImage/pkg2appimage/raw/master/pkg2appimage"
|
||||
# bash -ex pkg2appimage VSCodium
|
||||
|
||||
app: VSCodium
|
||||
|
||||
ingredients:
|
||||
packages:
|
||||
- code
|
||||
- libgconf2-4
|
||||
dist: trusty
|
||||
sources:
|
||||
- deb http://archive.ubuntu.com/ubuntu/ trusty main universe
|
||||
script:
|
||||
- pwd
|
||||
- cp ../.build/linux/deb/amd64/deb/*.deb .
|
||||
- ls codium_*.deb | cut -d _ -f 2 > VERSION
|
||||
|
||||
script:
|
||||
- sed -i -e 's|/usr/share/codium/||g' usr/share/applications/codium.desktop
|
||||
- sed -i -e 's|com.visualstudio.code.oss|vscodium|g' usr/share/applications/codium.desktop
|
||||
- cp usr/share/applications/codium.desktop .
|
||||
- cp usr/share/pixmaps/vscodium.png vscodium.png
|
||||
- convert vscodium.png -resize 512x512 usr/share/icons/hicolor/512x512/apps/vscodium.png
|
||||
- convert vscodium.png -resize 256x256 usr/share/icons/hicolor/256x256/apps/vscodium.png
|
||||
- convert vscodium.png -resize 128x128 usr/share/icons/hicolor/128x128/apps/vscodium.png
|
||||
- convert vscodium.png -resize 64x64 usr/share/icons/hicolor/64x64/apps/vscodium.png
|
||||
- convert vscodium.png -resize 48x48 usr/share/icons/hicolor/48x48/apps/vscodium.png
|
||||
- convert vscodium.png -resize 32x32 usr/share/icons/hicolor/32x32/apps/vscodium.png
|
||||
- convert vscodium.png -resize 24x24 usr/share/icons/hicolor/24x24/apps/vscodium.png
|
||||
- convert vscodium.png -resize 22x22 usr/share/icons/hicolor/22x22/apps/vscodium.png
|
||||
- ( cd usr/bin/ ; ln -s ../share/codium/codium . )
|
||||
@@ -1,16 +0,0 @@
|
||||
jobs:
|
||||
- job: Windows
|
||||
pool:
|
||||
vmImage: VS2017-Win2016
|
||||
variables:
|
||||
BUILDARCH: x64
|
||||
steps:
|
||||
- template: win32-build.yml
|
||||
|
||||
- job: Windows32
|
||||
pool:
|
||||
vmImage: VS2017-Win2016
|
||||
variables:
|
||||
BUILDARCH: ia32
|
||||
steps:
|
||||
- template: win32-build.yml
|
||||
118
build.sh
@@ -1,73 +1,69 @@
|
||||
#!/bin/bash
|
||||
if [[ "$SHOULD_BUILD" == "yes" ]]; then
|
||||
cp -rp src/* vscode/
|
||||
cd vscode
|
||||
|
||||
export npm_config_arch="$BUILDARCH"
|
||||
export npm_config_target_arch="$BUILDARCH"
|
||||
../update_settings.sh
|
||||
set -ex
|
||||
|
||||
yarn
|
||||
mv product.json product.json.bak
|
||||
if [[ "${SHOULD_BUILD}" == "yes" ]]; then
|
||||
npm config set scripts-prepend-node-path true
|
||||
|
||||
# set fields in product.json
|
||||
tipsAndTricksUrl='setpath(["tipsAndTricksUrl"]; "https://go.microsoft.com/fwlink/?linkid=852118")'
|
||||
twitterUrl='setpath(["twitterUrl"]; "https://go.microsoft.com/fwlink/?LinkID=533687")'
|
||||
requestFeatureUrl='setpath(["requestFeatureUrl"]; "https://go.microsoft.com/fwlink/?LinkID=533482")'
|
||||
documentationUrl='setpath(["documentationUrl"]; "https://go.microsoft.com/fwlink/?LinkID=533484#vscode")'
|
||||
introductoryVideosUrl='setpath(["introductoryVideosUrl"]; "https://go.microsoft.com/fwlink/?linkid=832146")'
|
||||
extensionAllowedBadgeProviders='setpath(["extensionAllowedBadgeProviders"]; ["api.bintray.com", "api.travis-ci.com", "api.travis-ci.org", "app.fossa.io", "badge.fury.io", "badge.waffle.io", "badgen.net", "badges.frapsoft.com", "badges.gitter.im", "badges.greenkeeper.io", "cdn.travis-ci.com", "cdn.travis-ci.org", "ci.appveyor.com", "circleci.com", "cla.opensource.microsoft.com", "codacy.com", "codeclimate.com", "codecov.io", "coveralls.io", "david-dm.org", "deepscan.io", "dev.azure.com", "flat.badgen.net", "gemnasium.com", "githost.io", "gitlab.com", "godoc.org", "goreportcard.com", "img.shields.io", "isitmaintained.com", "marketplace.visualstudio.com", "nodesecurity.io", "opencollective.com", "snyk.io", "travis-ci.com", "travis-ci.org", "visualstudio.com", "vsmarketplacebadge.apphb.com", "www.bithound.io", "www.versioneye.com"])'
|
||||
updateUrl='setpath(["updateUrl"]; "https://vscodium.now.sh")'
|
||||
releaseNotesUrl='setpath(["releaseNotesUrl"]; "https://go.microsoft.com/fwlink/?LinkID=533483#vscode")'
|
||||
keyboardShortcutsUrlMac='setpath(["keyboardShortcutsUrlMac"]; "https://go.microsoft.com/fwlink/?linkid=832143")'
|
||||
keyboardShortcutsUrlLinux='setpath(["keyboardShortcutsUrlLinux"]; "https://go.microsoft.com/fwlink/?linkid=832144")'
|
||||
keyboardShortcutsUrlWin='setpath(["keyboardShortcutsUrlWin"]; "https://go.microsoft.com/fwlink/?linkid=832145")'
|
||||
quality='setpath(["quality"]; "stable")'
|
||||
extensionsGallery='setpath(["extensionsGallery"]; {"serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery", "cacheUrl": "https://vscode.blob.core.windows.net/gallery/index", "itemUrl": "https://marketplace.visualstudio.com/items"})'
|
||||
nameShort='setpath(["nameShort"]; "VSCodium")'
|
||||
nameLong='setpath(["nameLong"]; "VSCodium")'
|
||||
linuxIconName='setpath(["linuxIconName"]; "vscodium")'
|
||||
applicationName='setpath(["applicationName"]; "codium")'
|
||||
win32MutexName='setpath(["win32MutexName"]; "vscodium")'
|
||||
win32DirName='setpath(["win32DirName"]; "VSCodium")'
|
||||
win32NameVersion='setpath(["win32NameVersion"]; "VSCodium")'
|
||||
win32RegValueName='setpath(["win32RegValueName"]; "VSCodium")'
|
||||
win32AppUserModelId='setpath(["win32AppUserModelId"]; "Microsoft.VSCodium")'
|
||||
win32ShellNameShort='setpath(["win32ShellNameShort"]; "V&SCodium")'
|
||||
win32x64UserAppId='setpath (["win32x64UserAppId"]; "{{2E1F05D1-C245-4562-81EE-28188DB6FD17}")'
|
||||
urlProtocol='setpath(["urlProtocol"]; "vscodium")'
|
||||
extensionAllowedProposedApi='setpath(["extensionAllowedProposedApi"]; getpath(["extensionAllowedProposedApi"]) + ["ms-vsliveshare.vsliveshare"])'
|
||||
echo "MS_COMMIT: ${MS_COMMIT}"
|
||||
|
||||
product_json_changes="${tipsAndTricksUrl} | ${twitterUrl} | ${requestFeatureUrl} | ${documentationUrl} | ${introductoryVideosUrl} | ${extensionAllowedBadgeProviders} | ${updateUrl} | ${releaseNotesUrl} | ${keyboardShortcutsUrlMac} | ${keyboardShortcutsUrlLinux} | ${keyboardShortcutsUrlWin} | ${quality} | ${extensionsGallery} | ${nameShort} | ${nameLong} | ${linuxIconName} | ${applicationName} | ${win32MutexName} | ${win32DirName} | ${win32NameVersion} | ${win32RegValueName} | ${win32AppUserModelId} | ${win32ShellNameShort} | ${win32x64UserAppId} | ${urlProtocol} | ${extensionAllowedProposedApi}"
|
||||
cat product.json.bak | jq "${product_json_changes}" > product.json
|
||||
cat product.json
|
||||
../undo_telemetry.sh
|
||||
. prepare_vscode.sh
|
||||
|
||||
export NODE_ENV=production
|
||||
cd vscode || exit
|
||||
|
||||
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
|
||||
# microsoft adds their apt repo to sources
|
||||
# unless the app name is code-oss
|
||||
# as we are renaming the application to vscodium
|
||||
# we need to edit a line in the post install template
|
||||
sed -i "s/code-oss/codium/" resources/linux/debian/postinst.template
|
||||
fi
|
||||
yarn monaco-compile-check
|
||||
yarn valid-layers-check
|
||||
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
npm install --global create-dmg
|
||||
npm run gulp -- "vscode-darwin-min"
|
||||
elif [[ "$CI_WINDOWS" == "True" ]]; then
|
||||
cp LICENSE.txt LICENSE.rtf # windows build expects rtf license
|
||||
npm run gulp -- "vscode-win32-${BUILDARCH}-min"
|
||||
npm run gulp -- "vscode-win32-${BUILDARCH}-inno-updater"
|
||||
npm run gulp -- "vscode-win32-${BUILDARCH}-system-setup"
|
||||
npm run gulp -- "vscode-win32-${BUILDARCH}-user-setup"
|
||||
npm run gulp -- "vscode-win32-${BUILDARCH}-archive"
|
||||
yarn gulp compile-build
|
||||
yarn gulp compile-extension-media
|
||||
yarn gulp compile-extensions-build
|
||||
yarn gulp minify-vscode
|
||||
|
||||
if [[ "${OS_NAME}" == "osx" ]]; then
|
||||
yarn gulp "vscode-darwin-${VSCODE_ARCH}-min-ci"
|
||||
elif [[ "${OS_NAME}" == "windows" ]]; then
|
||||
. ../build/windows/rtf/make.sh
|
||||
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-min-ci"
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-inno-updater"
|
||||
|
||||
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-archive"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_EXE_SYS}" != "no" ]]; then
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-system-setup"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_EXE_USR}" != "no" ]]; then
|
||||
yarn gulp "vscode-win32-${VSCODE_ARCH}-user-setup"
|
||||
fi
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "ia32" || "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
if [[ "${SHOULD_BUILD_MSI}" != "no" ]]; then
|
||||
. ../build/windows/msi/build.sh
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_MSI_NOUP}" != "no" ]]; then
|
||||
. ../build/windows/msi/build-updates-disabled.sh
|
||||
fi
|
||||
fi
|
||||
else # linux
|
||||
npm run gulp -- "vscode-linux-${BUILDARCH}-min"
|
||||
npm run gulp -- "vscode-linux-${BUILDARCH}-build-deb"
|
||||
npm run gulp -- "vscode-linux-${BUILDARCH}-build-rpm"
|
||||
. ../create_appimage.sh
|
||||
yarn gulp "vscode-linux-${VSCODE_ARCH}-min-ci"
|
||||
|
||||
if [[ "${SKIP_LINUX_PACKAGES}" != "True" ]]; then
|
||||
if [[ "${SHOULD_BUILD_DEB}" != "no" || "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
|
||||
yarn gulp "vscode-linux-${VSCODE_ARCH}-build-deb"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_RPM}" != "no" ]]; then
|
||||
yarn gulp "vscode-linux-${VSCODE_ARCH}-build-rpm"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
|
||||
. ../build/linux/appimage/build.sh
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
cd ..
|
||||
|
||||
24
build/azure-pipelines/computeYarnCacheKey.js
Normal file
@@ -0,0 +1,24 @@
|
||||
const fs = require("fs");
|
||||
const crypto = require("crypto");
|
||||
const path = require("path");
|
||||
const { dirs } = require('../../vscode/build/npm/dirs');
|
||||
|
||||
const ROOT = path.join(__dirname, '../../vscode');
|
||||
|
||||
const shasum = crypto.createHash('sha1');
|
||||
|
||||
shasum.update(fs.readFileSync(path.join(ROOT, '.yarnrc')));
|
||||
shasum.update(fs.readFileSync(path.join(ROOT, 'remote/.yarnrc')));
|
||||
|
||||
// Add `yarn.lock` files
|
||||
for (let dir of dirs) {
|
||||
const yarnLockPath = path.join(ROOT, dir, 'yarn.lock');
|
||||
shasum.update(fs.readFileSync(yarnLockPath));
|
||||
}
|
||||
|
||||
// Add any other command line arguments
|
||||
for (let i = 2; i < process.argv.length; i++) {
|
||||
shasum.update(process.argv[i]);
|
||||
}
|
||||
|
||||
process.stdout.write(shasum.digest('hex'));
|
||||
8
build/build_linux.sh
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
rm -rf VSCode*
|
||||
rm -rf vscode
|
||||
|
||||
./get_repo.sh
|
||||
|
||||
SHOULD_BUILD=yes CI_BUILD=no OS_NAME=linux VSCODE_ARCH=x64 ./build.sh
|
||||
8
build/build_macos.sh
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
rm -rf VSCode*
|
||||
rm -rf vscode
|
||||
|
||||
. get_repo.sh
|
||||
|
||||
SHOULD_BUILD=yes CI_BUILD=no OS_NAME=osx VSCODE_ARCH=x64 . build.sh
|
||||
6
build/build_windows.ps1
Executable file
@@ -0,0 +1,6 @@
|
||||
# powershell -ExecutionPolicy ByPass -File .\build\build_windows.ps1
|
||||
|
||||
# first so `bash` is the one installed with `git`, avoid conflict with WSL
|
||||
$env:Path = "C:\Program Files\Git\bin;" + $env:Path
|
||||
|
||||
bash ./build/build_windows.sh
|
||||
11
build/build_windows.sh
Executable file
@@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
# to run with Bash: "C:\Program Files\Git\bin\bash.exe" ./build/build_windows.sh
|
||||
|
||||
rm -rf VSCode*
|
||||
rm -rf vscode
|
||||
rm -rf build/windows/msi/releasedir
|
||||
|
||||
. get_repo.sh
|
||||
|
||||
SHOULD_BUILD=yes CI_BUILD=no OS_NAME=windows VSCODE_ARCH=x64 . build.sh
|
||||
28
build/linux/appimage/build.sh
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
CALLER_DIR=$( pwd )
|
||||
|
||||
cd "$( dirname "${BASH_SOURCE[0]}" )"
|
||||
|
||||
if [[ "$VSCODE_ARCH" == "x64" ]]; then
|
||||
wget -c https://github.com/$(wget -q https://github.com/AppImage/pkg2appimage/releases -O - | grep "pkg2appimage-.*-x86_64.AppImage" | head -n 1 | cut -d '"' -f 2)
|
||||
chmod +x ./pkg2appimage-*.AppImage
|
||||
|
||||
./pkg2appimage-*.AppImage --appimage-extract && mv ./squashfs-root ./pkg2appimage.AppDir
|
||||
|
||||
# add update's url
|
||||
sed -i 's/generate_type2_appimage/generate_type2_appimage -u "gh-releases-zsync|VSCodium|vscodium|latest|*.AppImage.zsync"/' pkg2appimage.AppDir/AppRun
|
||||
|
||||
# remove check so build in docker can succeed
|
||||
sed -i 's/grep docker/# grep docker/' pkg2appimage.AppDir/usr/share/pkg2appimage/functions.sh
|
||||
|
||||
bash -ex pkg2appimage.AppDir/AppRun recipe.yml
|
||||
|
||||
rm -f pkg2appimage-*.AppImage
|
||||
rm -rf pkg2appimage.AppDir
|
||||
rm -rf VSCodium
|
||||
fi
|
||||
|
||||
cd "${CALLER_DIR}"
|
||||
45
build/linux/appimage/recipe.yml
Normal file
@@ -0,0 +1,45 @@
|
||||
# Based on
|
||||
# https://github.com/AppImage/pkg2appimage/blob/master/recipes/VSCode.yml
|
||||
#
|
||||
# On a Debian/Ubuntu system:
|
||||
# wget -c "https://github.com/AppImage/pkg2appimage/raw/master/pkg2appimage"
|
||||
# bash -ex pkg2appimage VSCodium
|
||||
|
||||
app: VSCodium
|
||||
|
||||
ingredients:
|
||||
packages:
|
||||
- code
|
||||
- libgconf2-4
|
||||
dist: trusty
|
||||
sources:
|
||||
- deb http://archive.ubuntu.com/ubuntu/ trusty main universe
|
||||
script:
|
||||
- pwd
|
||||
- cp ../../../../vscode/.build/linux/deb/amd64/deb/*.deb .
|
||||
- ls codium_*.deb | cut -d _ -f 2 > VERSION
|
||||
|
||||
script:
|
||||
- sed -i -e 's|/usr/share/pixmaps/||g' usr/share/applications/codium.desktop
|
||||
- cp usr/share/applications/codium.desktop .
|
||||
- cp usr/share/pixmaps/vscodium.png .
|
||||
- /usr/bin/convert vscodium.png -resize 512x512 usr/share/icons/hicolor/512x512/apps/vscodium.png
|
||||
- /usr/bin/convert vscodium.png -resize 256x256 usr/share/icons/hicolor/256x256/apps/vscodium.png
|
||||
- /usr/bin/convert vscodium.png -resize 128x128 usr/share/icons/hicolor/128x128/apps/vscodium.png
|
||||
- /usr/bin/convert vscodium.png -resize 64x64 usr/share/icons/hicolor/64x64/apps/vscodium.png
|
||||
- /usr/bin/convert vscodium.png -resize 48x48 usr/share/icons/hicolor/48x48/apps/vscodium.png
|
||||
- /usr/bin/convert vscodium.png -resize 32x32 usr/share/icons/hicolor/32x32/apps/vscodium.png
|
||||
- ( cd usr/bin/ ; ln -s ../share/codium/codium . )
|
||||
- rm -rf usr/lib/x86_64-linux-gnu
|
||||
- cat > AppRun <<\EOF
|
||||
- #!/bin/sh
|
||||
- HERE="$(dirname "$(readlink -f "${0}")")"
|
||||
- export PATH="${HERE}"/usr/bin/:"${HERE}"/usr/sbin/:"${HERE}"/usr/games/:"${HERE}"/bin/:"${HERE}"/sbin/:"${PATH}"
|
||||
- export LD_LIBRARY_PATH="${HERE}"/usr/lib/:"${HERE}"/usr/lib32/:"${HERE}"/usr/lib64/:"${HERE}"/lib/:"${HERE}"/lib/i386-linux-gnu/:"${HERE}"/lib/x86_64-linux-gnu/:"${HERE}"/lib32/:"${HERE}"/lib64/:"${LD_LIBRARY_PATH}"
|
||||
- export XDG_DATA_DIRS="${HERE}"/usr/share/:"${XDG_DATA_DIRS}"
|
||||
- export PERLLIB="${HERE}"/usr/share/perl5/:"${HERE}"/usr/lib/perl5/:"${PERLLIB}"
|
||||
- export GSETTINGS_SCHEMA_DIR="${HERE}"/usr/share/glib-2.0/schemas/:"${GSETTINGS_SCHEMA_DIR}"
|
||||
- export QT_PLUGIN_PATH="${HERE}"/usr/lib/qt4/plugins/:"${HERE}"/usr/lib/i386-linux-gnu/qt4/plugins/:"${HERE}"/usr/lib/x86_64-linux-gnu/qt4/plugins/:"${HERE}"/usr/lib32/qt4/plugins/:"${HERE}"/usr/lib64/qt4/plugins/:"${HERE}"/usr/lib/qt5/plugins/:"${HERE}"/usr/lib/i386-linux-gnu/qt5/plugins/:"${HERE}"/usr/lib/x86_64-linux-gnu/qt5/plugins/:"${HERE}"/usr/lib32/qt5/plugins/:"${HERE}"/usr/lib64/qt5/plugins/:"${QT_PLUGIN_PATH}"
|
||||
- EXEC=$(grep -e '^Exec=.*' "${HERE}"/*.desktop | head -n 1 | cut -d "=" -f 2- | sed -e 's|%.||g')
|
||||
- exec ${EXEC} "$@"
|
||||
- EOF
|
||||
21
build/windows/msi/build-updates-disabled.sh
Normal file
@@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
CALLER_DIR=$( pwd )
|
||||
|
||||
cd "$( dirname "${BASH_SOURCE[0]}" )"
|
||||
|
||||
SCRIPT_DIR=$( pwd )
|
||||
|
||||
cd ../../../VSCode-win32-${VSCODE_ARCH}/resources/app
|
||||
|
||||
cp product.json product.json.bak
|
||||
cat product.json.bak | jq "del(.updateUrl)" > product.json
|
||||
rm -f product.json.bak
|
||||
|
||||
cd "${SCRIPT_DIR}"
|
||||
|
||||
. build.sh "updates-disabled"
|
||||
|
||||
cd "${CALLER_DIR}"
|
||||
86
build/windows/msi/build.sh
Normal file
@@ -0,0 +1,86 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
CALLER_DIR=$( pwd )
|
||||
|
||||
cd "$( dirname "${BASH_SOURCE[0]}" )"
|
||||
|
||||
WIN_SDK_MAJOR_VERSION="10"
|
||||
WIN_SDK_FULL_VERSION="10.0.17763.0"
|
||||
|
||||
PRODUCT_NAME="VSCodium"
|
||||
PRODUCT_SKU="vscodium"
|
||||
PRODUCT_ID=$( powershell.exe -command "[guid]::NewGuid().ToString().ToUpper()" )
|
||||
PRODUCT_ID="${PRODUCT_ID%%[[:cntrl:]]}"
|
||||
|
||||
CULTURE="en-us"
|
||||
LANGIDS="1033"
|
||||
|
||||
SETUP_RELEASE_DIR=".\\releasedir"
|
||||
SETUP_RESOURCES_DIR=".\\resources"
|
||||
BINARY_DIR="..\\..\\..\\VSCode-win32-${VSCODE_ARCH}"
|
||||
ICON_DIR="..\\..\\..\\src\\resources\\win32"
|
||||
LICENSE_DIR="..\\..\\..\\vscode"
|
||||
PROGRAM_FILES_86=$( env | sed -n 's/^ProgramFiles(x86)=//p' )
|
||||
|
||||
if [[ -z "$1" ]]; then
|
||||
OUTPUT_BASE_FILENAME="${PRODUCT_NAME}-${VSCODE_ARCH}-${MS_TAG}"
|
||||
else
|
||||
OUTPUT_BASE_FILENAME="${PRODUCT_NAME}-${VSCODE_ARCH}-$1-${MS_TAG}"
|
||||
fi
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "ia32" ]]; then
|
||||
export PLATFORM="x86"
|
||||
else
|
||||
export PLATFORM="${VSCODE_ARCH}"
|
||||
fi
|
||||
|
||||
|
||||
BuildSetupTranslationTransform() {
|
||||
local CULTURE=$1
|
||||
local LANGID=$2
|
||||
|
||||
LANGIDS="${LANGIDS},${LANGID}"
|
||||
|
||||
echo "Building setup translation for culture \"${CULTURE}\" with LangID \"${LANGID}\"..."
|
||||
|
||||
"${WIX}bin\\light.exe" vscodium.wixobj "Files-${OUTPUT_BASE_FILENAME}.wixobj" -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -spdb -cc "${TEMP}\\vscodium-cab-cache\\${PLATFORM}" -reusecab -out "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi" -loc "i18n\\${PRODUCT_SKU}.${CULTURE}.wxl" -cultures:"${CULTURE}" -sice:ICE60 -sice:ICE69
|
||||
|
||||
cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\WiLangId.vbs" ${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi Product "${LANGID}"
|
||||
|
||||
"${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\x86\\msitran" -g "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.mst"
|
||||
|
||||
cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\wisubstg.vbs" ${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi ${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.mst "${LANGID}"
|
||||
|
||||
cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\wisubstg.vbs" ${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi
|
||||
|
||||
rm -f "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.msi"
|
||||
rm -f "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.${CULTURE}.mst"
|
||||
}
|
||||
|
||||
"${WIX}bin\\heat.exe" dir "${BINARY_DIR}" -out "Files-${OUTPUT_BASE_FILENAME}.wxs" -t vscodium.xsl -gg -sfrag -scom -sreg -srd -ke -cg "AppFiles" -var var.AppName -var var.ProductVersion -var var.IconDir -var var.LicenseDir -var var.BinaryDir -dr APPLICATIONFOLDER -platform "${PLATFORM}"
|
||||
"${WIX}bin\\candle.exe" -arch "${PLATFORM}" vscodium.wxs "Files-${OUTPUT_BASE_FILENAME}.wxs" -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -dAppName=${PRODUCT_NAME} -dProductVersion="${MS_TAG}" -dProductId="${PRODUCT_ID}" -dBinaryDir="${BINARY_DIR}" -dIconDir="${ICON_DIR}" -dLicenseDir="${LICENSE_DIR}" -dSetupResourcesDir="${SETUP_RESOURCES_DIR}" -dCulture="${CULTURE}"
|
||||
"${WIX}bin\\light.exe" vscodium.wixobj "Files-${OUTPUT_BASE_FILENAME}.wixobj" -ext WixUIExtension -ext WixUtilExtension -ext WixNetFxExtension -spdb -cc "${TEMP}\\vscodium-cab-cache\\${PLATFORM}" -out "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi" -loc "i18n\\${PRODUCT_SKU}.${CULTURE}.wxl" -cultures:"${CULTURE}" -sice:ICE60 -sice:ICE69
|
||||
|
||||
BuildSetupTranslationTransform de-de 1031
|
||||
BuildSetupTranslationTransform es-es 3082
|
||||
BuildSetupTranslationTransform fr-fr 1036
|
||||
BuildSetupTranslationTransform it-it 1040
|
||||
# WixUI_Advanced bug: https://github.com/wixtoolset/issues/issues/5909
|
||||
# BuildSetupTranslationTransform ja-jp 1041
|
||||
BuildSetupTranslationTransform ko-kr 1042
|
||||
BuildSetupTranslationTransform ru-ru 1049
|
||||
BuildSetupTranslationTransform zh-cn 2052
|
||||
BuildSetupTranslationTransform zh-tw 1028
|
||||
|
||||
# Add all supported languages to MSI Package attribute
|
||||
cscript "${PROGRAM_FILES_86}\\Windows Kits\\${WIN_SDK_MAJOR_VERSION}\\bin\\${WIN_SDK_FULL_VERSION}\\${PLATFORM}\\WiLangId.vbs" "${SETUP_RELEASE_DIR}\\${OUTPUT_BASE_FILENAME}.msi" Package "${LANGIDS}"
|
||||
|
||||
# Remove files we do not need any longer.
|
||||
rm -rf "${TEMP}\\vscodium-cab-cache"
|
||||
rm -f "Files-${OUTPUT_BASE_FILENAME}.wxs"
|
||||
rm -f "Files-${OUTPUT_BASE_FILENAME}.wixobj"
|
||||
rm -f "vscodium.wixobj"
|
||||
|
||||
cd "${CALLER_DIR}"
|
||||
25
build/windows/msi/i18n/vscodium.de-de.wxl
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="de-de" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">1031</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Paket mit VSCodium</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Startmenü-Verknüpfung</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Startmenü-Symbol erstellen.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop-Verknüpfung</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Desktop-Symbol erstellen.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">Dateizuordnungen</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">VSCodium als Editor für unterstützte Dateitypen registrieren.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Dateikontextmenü</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Aktion "Mit VSCodium öffnen" dem Dateikontextmenü von Windows-Explorer hinzufügen.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Verzeichniskontextmenü</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Aktion "Mit VSCodium öffnen" dem Verzeichniskontextmenü von Windows-Explorer hinzufügen.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Zu PATH hinzufügen</String>
|
||||
<String Id="FeatureEnvironmentDescription">VSCodium zur PATH Variable hinzufügen. Nach dem Neustart verfügbar.</String>
|
||||
<String Id="LaunchApplication">VSCodium ausführen</String>
|
||||
<String Id="NewerVersionInstalled">Eine neuere Version von VSCodium ist bereits installiert.</String>
|
||||
<String Id="MinimumNetFramworkRequired">Diese Anwendung erfordert .NET Framework 4.5.2 oder höher. Bitte installieren Sie .NET Framework und führen Sie dieses Installationsprogramm erneut aus.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 oder neuer ist erforderlich.</String>
|
||||
</WixLocalization>
|
||||
25
build/windows/msi/i18n/vscodium.en-us.wxl
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="en-us" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">1033</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
25
build/windows/msi/i18n/vscodium.es-es.wxl
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="es-es" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">3082</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
25
build/windows/msi/i18n/vscodium.fr-fr.wxl
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="fr-fr" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">1036</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
25
build/windows/msi/i18n/vscodium.it-it.wxl
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="it-it" Codepage="1252" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">1040</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
25
build/windows/msi/i18n/vscodium.ja-jp.wxl
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="ja-jp" Codepage="932" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">1041</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
25
build/windows/msi/i18n/vscodium.ko-kr.wxl
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="ko-kr" Codepage="949" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">1042</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
25
build/windows/msi/i18n/vscodium.ru-ru.wxl
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="ru-ru" Codepage="1251" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">1049</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
25
build/windows/msi/i18n/vscodium.zh-cn.wxl
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="zh-cn" Codepage="936" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">2052</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
25
build/windows/msi/i18n/vscodium.zh-tw.wxl
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<WixLocalization Culture="zh-tw" Codepage="950" xmlns="http://schemas.microsoft.com/wix/2006/localization">
|
||||
<String Id="ProductLanguage">1028</String>
|
||||
<String Id="ProductName">VSCodium</String>
|
||||
<String Id="ProductHelpLink">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlInfoAbout">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="ProductUrlUpdateInfo">https://github.com/VSCodium/vscodium</String>
|
||||
<String Id="PackageDescription">Package with VSCodium</String>
|
||||
<String Id="FeatureStartMenuShortcutTitle">Start Menu shortcut</String>
|
||||
<String Id="FeatureStartMenuShortcutDescription">Create a start menu icon.</String>
|
||||
<String Id="FeatureDesktopShortcutTitle">Desktop shortcut</String>
|
||||
<String Id="FeatureDesktopShortcutDescription">Create a desktop icon.</String>
|
||||
<String Id="FeatureFileTypeAssociationsTitle">File Associations</String>
|
||||
<String Id="FeatureFileTypeAssociationsDescription">Register VSCodium as an editor for supported file types.</String>
|
||||
<String Id="FeatureAddContextMenuFilesTitle">Files context menu</String>
|
||||
<String Id="FeatureAddContextMenuFilesDescription">Add "Open with VSCodium" action to Windows Explorer file contect menu.</String>
|
||||
<String Id="FeatureAddContextMenuFoldersTitle">Directory context menu</String>
|
||||
<String Id="FeatureAddContextMenuFoldersDescription">Add "Open with VSCodium" action to Windows Explorer directory contect menu.</String>
|
||||
<String Id="FeatureEnvironmentTitle">Add to PATH</String>
|
||||
<String Id="FeatureEnvironmentDescription">Add VSCodium to PATH environment variable. Available after restart.</String>
|
||||
<String Id="LaunchApplication">Launch VSCodium</String>
|
||||
<String Id="NewerVersionInstalled">Newer version of VSCodium is already installed.</String>
|
||||
<String Id="MinimumNetFramworkRequired">This application requires .NET Framework 4.5.2 or later. Please install the .NET Framework then run this installer again.</String>
|
||||
<String Id="OSVersionRequired">Windows 7 or later is required.</String>
|
||||
</WixLocalization>
|
||||
27
build/windows/msi/includes/vscodium-variables.wxi
Normal file
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Include>
|
||||
<!-- Setup UI strings. -->
|
||||
<?if $(env.Platform)=x86?>
|
||||
<?define ProgramFilesFolder="ProgramFilesFolder" ?>
|
||||
<?define Win64="no" ?>
|
||||
<?define Arch="(x86)" ?>
|
||||
<?else?>
|
||||
<?define ProgramFilesFolder="ProgramFiles64Folder" ?>
|
||||
<?define Win64="yes" ?>
|
||||
<?define Arch="(x64)" ?>
|
||||
<?endif?>
|
||||
|
||||
<!-- <?define ProductVersion="$(var.ProductVersion)" ?> -->
|
||||
<?define ProductName="!(loc.ProductName)" ?>
|
||||
<?define ProductNameWithVersion="!(loc.ProductName) $(var.ProductVersion) $(var.Arch)" ?>
|
||||
<?define ProductLanguage="!(loc.ProductLanguage)" ?>
|
||||
<?define AppCodeName="$(var.AppName)" ?>
|
||||
<!-- <?define AppName="$(var.AppName)" ?> -->
|
||||
<?define AppFolderName="$(var.AppName)" ?>
|
||||
<?define ProductManufacturerShort="$(var.AppName)" ?>
|
||||
<?define ProductManufacturerLong="$(var.AppName)" ?>
|
||||
|
||||
<!-- Static settings, DO NOT TOUCH or upgrades will break! -->
|
||||
<?define ProductUpgradeCode="{965370CD-253C-4720-82FC-2E6B02A53808}" ?>
|
||||
<?define RTMProductVersion="0.0.1" ?>
|
||||
</Include>
|
||||
BIN
build/windows/msi/resources/wix-banner.bmp
Normal file
|
After Width: | Height: | Size: 84 KiB |
BIN
build/windows/msi/resources/wix-dialog.bmp
Normal file
|
After Width: | Height: | Size: 451 KiB |
1507
build/windows/msi/vscodium.wxs
Normal file
468
build/windows/msi/vscodium.xsl
Normal file
@@ -0,0 +1,468 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xsl:stylesheet version="1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns:wi="http://schemas.microsoft.com/wix/2006/wi">
|
||||
|
||||
<xsl:strip-space elements="*"/>
|
||||
|
||||
<xsl:template match="@*|node()">
|
||||
<xsl:copy>
|
||||
<xsl:apply-templates select="@*|node()" />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId1ToReplace" match="wi:Component[wi:File[contains(@Source,'VSCodium.exe')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId1ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">VSCODIUM.EXE</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'VSCodium.exe')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">VSCODIUM.EXE</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId2ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\bower.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId2ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">BOWER.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\bower.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">BOWER.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId3ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\c.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId3ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">C.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\c.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">C.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId4ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\config.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId4ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">CONFIG.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\config.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">CONFIG.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId5ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\cpp.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId5ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">CPP.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\cpp.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">CPP.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId7ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\csharp.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId7ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">CSHARP.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\csharp.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">CSHARP.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId8ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\css.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId8ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">CSS.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\css.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">CSS.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId9ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\default.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId9ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">DEFAULT.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\default.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">DEFAULT.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId10ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\go.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId10ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">GO.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\go.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">GO.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId11ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\html.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId11ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">HTML.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\html.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">HTML.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId12ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\jade.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId12ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">JADE.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\jade.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">JADE.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId13ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\java.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId13ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">JAVA.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\java.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">JAVA.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId14ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\javascript.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId14ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">JAVASCRIPT.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\javascript.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">JAVASCRIPT.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId15ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\json.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId15ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">JSON.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\json.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">JSON.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId16ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\less.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId16ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">LESS.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\less.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">LESS.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId17ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\markdown.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId17ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">MARKDOWN.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\markdown.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">MARKDOWN.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId18ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\php.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId18ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">PHP.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\php.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">PHP.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId19ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\powershell.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId19ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">POWERSHELL.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\powershell.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">POWERSHELL.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId20ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\python.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId20ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">PYTHON.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\python.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">PYTHON.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId21ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\react.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId21ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">REACT.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\react.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">REACT.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId22ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\ruby.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId22ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">RUBY.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\ruby.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">RUBY.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId23ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\sass.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId23ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">SASS.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\sass.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">SASS.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId24ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\shell.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId24ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">SHELL.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\shell.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">SHELL.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId25ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\sql.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId25ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">SQL.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\sql.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">SQL.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId26ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\typescript.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId26ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">TYPESCRIPT.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\typescript.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">TYPESCRIPT.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId27ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\vue.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId27ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">VUE.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\vue.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">VUE.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId28ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\xml.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId28ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">XML.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\xml.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">XML.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:key name="vId29ToReplace" match="wi:Component[wi:File[contains(@Source,'resources\app\resources\win32\yaml.ico')]]" use="@Id"/>
|
||||
<xsl:template match="node()[key('vId29ToReplace', @Id)]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">YAML.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
<xsl:template match="wi:Component/wi:File[contains(@Source,'resources\app\resources\win32\yaml.ico')]">
|
||||
<xsl:copy>
|
||||
<xsl:attribute name="Id">YAML.ICO</xsl:attribute>
|
||||
<xsl:copy-of select="@*[name()!='Id']"/>
|
||||
<xsl:apply-templates />
|
||||
</xsl:copy>
|
||||
</xsl:template>
|
||||
|
||||
<!-- Remove conflicting non-MSI updater -->
|
||||
<xsl:key name="FileToRemove" match="wi:Component[wi:File[contains(@Source,'tools\inno_updater.exe')]]" use="@Id" />
|
||||
<xsl:template match="*[self::wi:Component or self::wi:ComponentRef][key('FileToRemove', @Id)]" />
|
||||
|
||||
<xsl:key name="FileToRemove" match="wi:Component[wi:File[contains(@Source,'tools\vcruntime140.dll')]]" use="@Id" />
|
||||
<xsl:template match="*[self::wi:Component or self::wi:ComponentRef][key('FileToRemove', @Id)]" />
|
||||
</xsl:stylesheet>
|
||||
20
build/windows/rtf/make.sh
Normal file
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
|
||||
cd "$( dirname "${BASH_SOURCE[0]}" )"/../../../vscode
|
||||
|
||||
input=LICENSE.txt
|
||||
target=LICENSE.rtf
|
||||
|
||||
cat - >$target <<_EOF
|
||||
{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 Consolas;}}
|
||||
\viewkind4\uc1\pard\lang1033\f0\fs22
|
||||
|
||||
_EOF
|
||||
|
||||
sed -zE -e 's/([A-Za-z,])\r?\n([A-Za-z])/\1 \2/g' -e 's/\r?\n\r?\n/\\par\n\n/g' -e 's/(\\par\n)/\\line\1/g' -e 's/\s*(Copyright)/\\line\n\1/g' -e 's/(\\par)\\line/\1\n/g' $input >> $target
|
||||
|
||||
|
||||
cat - >>$target <<_EOF
|
||||
\par
|
||||
}
|
||||
_EOF
|
||||
24
check_cron_or_pr.sh
Executable file
@@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if [[ $GITHUB_EVENT_NAME == "pull_request" ]]; then
|
||||
echo "It's a PR"
|
||||
|
||||
export SHOULD_BUILD="yes"
|
||||
export SHOULD_DEPLOY="no"
|
||||
elif [[ $GITHUB_EVENT_NAME == "push" ]]; then
|
||||
echo "It's a Push"
|
||||
|
||||
export SHOULD_BUILD="yes"
|
||||
export SHOULD_DEPLOY="no"
|
||||
else
|
||||
echo "It's a cron"
|
||||
|
||||
export SHOULD_DEPLOY="yes"
|
||||
fi
|
||||
|
||||
if [[ $GITHUB_ENV ]]; then
|
||||
echo "SHOULD_BUILD=$SHOULD_BUILD" >> $GITHUB_ENV
|
||||
echo "SHOULD_DEPLOY=$SHOULD_DEPLOY" >> $GITHUB_ENV
|
||||
fi
|
||||
@@ -1,38 +0,0 @@
|
||||
echo "tag: $env:LATEST_MS_TAG"
|
||||
$REPO_URI = [uri]$env:BUILD_REPOSITORY_URI
|
||||
$USER_REPO = $REPO_URI."LocalPath"
|
||||
echo $USER_REPO
|
||||
$GITHUB_RESPONSE = curl.exe -s -H "Authorization: token $env:MAPPED_GITHUB_TOKEN" "https://api.github.com/repos$USER_REPO/releases/tags/$env:LATEST_MS_TAG"
|
||||
echo "Github response: ${GITHUB_RESPONSE}"
|
||||
$VSCODIUM_ASSETS = $GITHUB_RESPONSE | jq '.assets'
|
||||
echo "VSCodium assets: ${VSCODIUM_ASSETS}"
|
||||
|
||||
# if we just don't have the github token, get out fast
|
||||
if (!$env:MAPPED_GITHUB_TOKEN -or $env:MAPPED_GITHUB_TOKEN -like "*GITHUB_TOKEN*") {
|
||||
echo "This build does not have the GH token"
|
||||
echo $env:MAPPED_GITHUB_TOKEN
|
||||
return
|
||||
}
|
||||
|
||||
if ($VSCODIUM_ASSETS -eq "null" -or !$VSCODIUM_ASSETS) {
|
||||
echo "Release assets do not exist at all, continuing build"
|
||||
$SHOULD_BUILD = 'yes'
|
||||
} else {
|
||||
$WindowsAssets = ($VSCODIUM_ASSETS | ConvertFrom-Json) | Where-Object { $_.name.Contains('exe') }
|
||||
$SYSTEM_SETUP = $WindowsAssets | Where-Object { $_.name.Contains('Setup') }
|
||||
$USER_SETUP = $WindowsAssets | Where-Object { $_.name.Contains('User') }
|
||||
if (!$SYSTEM_SETUP) {
|
||||
echo "Building on Windows because we have no system-setup.exe";
|
||||
$SHOULD_BUILD = 'yes'
|
||||
}
|
||||
elseif (!$USER_SETUP) {
|
||||
echo "Building on Windows because we have no user-setup.exe";
|
||||
$SHOULD_BUILD = 'yes'
|
||||
}
|
||||
else {
|
||||
echo "Already have all the Windows builds"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Write-Host "##vso[task.setvariable variable=SHOULD_BUILD]$SHOULD_BUILD"
|
||||
276
check_tags.sh
@@ -1,70 +1,260 @@
|
||||
#!/bin/bash
|
||||
|
||||
REPOSITORY=${TRAVIS_REPO_SLUG:-"VSCodium/vscodium"}
|
||||
GITHUB_RESPONSE=$(curl -s -H "Authorization: token $GITHUB_TOKEN" https://api.github.com/repos/$REPOSITORY/releases/tags/$LATEST_MS_TAG)
|
||||
echo "Github response: ${GITHUB_RESPONSE}"
|
||||
VSCODIUM_ASSETS=$(echo $GITHUB_RESPONSE | jq '.assets')
|
||||
echo "VSCodium assets: ${VSCODIUM_ASSETS}"
|
||||
set -e
|
||||
|
||||
# if we just don't have the github token, get out fast
|
||||
if [ "$GITHUB_TOKEN" != "" ]; then
|
||||
if [ "$VSCODIUM_ASSETS" != "null" ]; then
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
HAVE_MAC=$(echo $VSCODIUM_ASSETS | jq --arg suffix "darwin-$LATEST_MS_TAG.zip" 'map(.name) | contains([$suffix])')
|
||||
if [[ "$HAVE_MAC" != "true" ]]; then
|
||||
echo "Building on Mac because we have no ZIP"
|
||||
if [[ -z "${GITHUB_TOKEN}" ]]; then
|
||||
echo "Will not build because no GITHUB_TOKEN defined"
|
||||
exit
|
||||
fi
|
||||
|
||||
REPOSITORY="${GITHUB_REPOSITORY:-"VSCodium/vscodium"}"
|
||||
GITHUB_RESPONSE=$( curl -s -H "Authorization: token ${GITHUB_TOKEN}" https://api.github.com/repos/${REPOSITORY}/releases/tags/${MS_TAG})
|
||||
VSCODIUM_ASSETS=$( echo "${GITHUB_RESPONSE}" | jq -c '.assets | map(.name)?' )
|
||||
|
||||
contains() {
|
||||
# add " to match the end of a string so any hashs won't be matched by mistake
|
||||
echo "${VSCODIUM_ASSETS}" | grep "$1\""
|
||||
}
|
||||
|
||||
if [ "${VSCODIUM_ASSETS}" != "null" ]; then
|
||||
# macos
|
||||
if [[ "${OS_NAME}" == "osx" ]]; then
|
||||
if [[ -z $( contains "darwin-${VSCODE_ARCH}-${MS_TAG}.zip" ) ]]; then
|
||||
echo "Building on MacOS because we have no ZIP"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_ZIP="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains ".${VSCODE_ARCH}.${MS_TAG}.dmg" ) ]]; then
|
||||
echo "Building on MacOS because we have no DMG"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_DMG="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the MacOS builds"
|
||||
fi
|
||||
elif [[ "${OS_NAME}" == "windows" ]]; then
|
||||
|
||||
# windows-arm64
|
||||
if [[ ${VSCODE_ARCH} == "arm64" ]]; then
|
||||
if [[ -z $( contains "VSCodiumSetup-${VSCODE_ARCH}-${MS_TAG}.exe" ) ]]; then
|
||||
echo "Building on Windows arm64 because we have no system setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_SYS="no"
|
||||
fi
|
||||
elif [[ $BUILDARCH == "arm64" ]]; then
|
||||
# HAVE_ARM64_RPM=$(echo $VSCODIUM_ASSETS | jq 'map(.name) | contains(["arm64.rpm"])')
|
||||
HAVE_ARM64_DEB=$(echo $VSCODIUM_ASSETS | jq 'map(.name) | contains(["arm64.deb"])')
|
||||
HAVE_ARM64_TAR=$(echo $VSCODIUM_ASSETS | jq --arg suffix "arm64-$LATEST_MS_TAG.tar.gz" 'map(.name) | contains([$suffix])')
|
||||
# if [[ "$HAVE_ARM64_RPM" != "true" ]]; then
|
||||
# echo "Building on Linux arm64 because we have no RPM"
|
||||
# export SHOULD_BUILD="yes"
|
||||
# fi
|
||||
if [[ "$HAVE_ARM64_DEB" != "true" ]]; then
|
||||
|
||||
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${MS_TAG}.exe" ) ]]; then
|
||||
echo "Building on Windows arm64 because we have no user setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_USR="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "win32-${VSCODE_ARCH}-${MS_TAG}.zip" ) ]]; then
|
||||
echo "Building on Windows arm64 because we have no zip"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_ZIP="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Windows arm64 builds"
|
||||
fi
|
||||
|
||||
# windows-ia32
|
||||
elif [[ ${VSCODE_ARCH} == "ia32" ]]; then
|
||||
if [[ -z $( contains "VSCodiumSetup-${VSCODE_ARCH}-${MS_TAG}.exe" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no system setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_SYS="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${MS_TAG}.exe" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no user setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_USR="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "win32-${VSCODE_ARCH}-${MS_TAG}.zip" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no zip"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_ZIP="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "VSCodium-${VSCODE_ARCH}-${MS_TAG}.msi" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no msi"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_MSI="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "VSCodium-${VSCODE_ARCH}-updates-disabled-${MS_TAG}.msi" ) ]]; then
|
||||
echo "Building on Windows ia32 because we have no updates-disabled msi"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_MSI_NOUP="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Windows ia32 builds"
|
||||
fi
|
||||
|
||||
# windows-x64
|
||||
else
|
||||
if [[ -z $( contains "VSCodiumSetup-${VSCODE_ARCH}-${MS_TAG}.exe" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no system setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_SYS="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "UserSetup-${VSCODE_ARCH}-${MS_TAG}.exe" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no user setup"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_EXE_USR="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "win32-${VSCODE_ARCH}-${MS_TAG}.zip" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no zip"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_ZIP="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "VSCodium-${VSCODE_ARCH}-${MS_TAG}.msi" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no msi"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_MSI="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "VSCodium-${VSCODE_ARCH}-updates-disabled-${MS_TAG}.msi" ) ]]; then
|
||||
echo "Building on Windows x64 because we have no updates-disabled msi"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_MSI_NOUP="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Windows x64 builds"
|
||||
fi
|
||||
fi
|
||||
elif [[ "${OS_NAME}" == "linux" ]]; then
|
||||
|
||||
# linux-arm64
|
||||
if [[ ${VSCODE_ARCH} == "arm64" ]]; then
|
||||
if [[ -z $( contains "arm64.deb" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_DEB="no"
|
||||
fi
|
||||
if [[ "$HAVE_ARM64_TAR" != "true" ]]; then
|
||||
|
||||
if [[ -z $( contains "aarch64.rpm" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no RPM"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "arm64-${MS_TAG}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm64 because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="no"
|
||||
fi
|
||||
if [[ "$SHOULD_BUILD" != "yes" ]]; then
|
||||
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux arm64 builds"
|
||||
fi
|
||||
else
|
||||
HAVE_64_RPM=$(echo $VSCODIUM_ASSETS | jq 'map(.name) | contains(["x86_64.rpm"])')
|
||||
HAVE_64_DEB=$(echo $VSCODIUM_ASSETS | jq 'map(.name) | contains(["amd64.deb"])')
|
||||
HAVE_64_TAR=$(echo $VSCODIUM_ASSETS | jq --arg suffix "x64-$LATEST_MS_TAG.tar.gz" 'map(.name) | contains([$suffix])')
|
||||
if [[ "$HAVE_64_RPM" != "true" ]]; then
|
||||
echo "Building on Linux x64 because we have no RPM"
|
||||
|
||||
# linux-armhf
|
||||
elif [[ ${VSCODE_ARCH} == "armhf" ]]; then
|
||||
if [[ -z $( contains "armhf.deb" ) ]]; then
|
||||
echo "Building on Linux arm because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_DEB="no"
|
||||
fi
|
||||
if [[ "$HAVE_64_DEB" != "true" ]]; then
|
||||
|
||||
if [[ -z $( contains "armv7hl.rpm" ) ]]; then
|
||||
echo "Building on Linux arm because we have no RPM"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "armhf-${MS_TAG}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux arm because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="no"
|
||||
fi
|
||||
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux arm builds"
|
||||
fi
|
||||
|
||||
# linux-x64
|
||||
else
|
||||
if [[ -z $( contains "amd64.deb" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no DEB"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_DEB="no"
|
||||
fi
|
||||
if [[ "$HAVE_64_TAR" != "true" ]]; then
|
||||
|
||||
if [[ -z $( contains "x86_64.rpm" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no RPM"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_RPM="no"
|
||||
fi
|
||||
|
||||
if [[ -z $( contains "x64-${MS_TAG}.tar.gz" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no TAR"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_TAR="no"
|
||||
fi
|
||||
if [[ "$SHOULD_BUILD" != "yes" ]]; then
|
||||
|
||||
if [[ -z $( contains "x86_64.AppImage" ) ]]; then
|
||||
echo "Building on Linux x64 because we have no AppImage"
|
||||
export SHOULD_BUILD="yes"
|
||||
else
|
||||
export SHOULD_BUILD_APPIMAGE="no"
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD}" != "yes" ]]; then
|
||||
echo "Already have all the Linux x64 builds"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "Release assets do not exist at all, continuing build"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
if git rev-parse $LATEST_MS_TAG >/dev/null 2>&1
|
||||
then
|
||||
export TRAVIS_TAG=$LATEST_MS_TAG
|
||||
else
|
||||
git config --local user.name "Travis CI"
|
||||
git config --local user.email "builds@travis-ci.com"
|
||||
git tag $LATEST_MS_TAG
|
||||
fi
|
||||
else
|
||||
echo "Release assets do not exist at all, continuing build"
|
||||
export SHOULD_BUILD="yes"
|
||||
fi
|
||||
|
||||
echo "SHOULD_BUILD=${SHOULD_BUILD}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_APPIMAGE=${SHOULD_BUILD_APPIMAGE}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_DEB=${SHOULD_BUILD_DEB}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_DMG=${SHOULD_BUILD_DMG}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_EXE_SYS=${SHOULD_BUILD_EXE_SYS}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_EXE_USR=${SHOULD_BUILD_EXE_USR}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_MSI=${SHOULD_BUILD_MSI}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_MSI_NOUP=${SHOULD_BUILD_MSI_NOUP}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_RPM=${SHOULD_BUILD_RPM}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_TAR=${SHOULD_BUILD_TAR}" >> "${GITHUB_ENV}"
|
||||
echo "SHOULD_BUILD_ZIP=${SHOULD_BUILD_ZIP}" >> "${GITHUB_ENV}"
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
#!/bin/bash
|
||||
if [[ "$BUILDARCH" == "x64" ]]; then
|
||||
# install a dep needed for this process
|
||||
sudo apt-get install desktop-file-utils
|
||||
|
||||
# download pkg2appimage from github
|
||||
curl -LO "https://github.com/AppImage/pkg2appimage/raw/master/pkg2appimage"
|
||||
|
||||
bash -e pkg2appimage ../VSCodium-AppImage-Recipe.yml
|
||||
fi
|
||||
@@ -1,8 +0,0 @@
|
||||
#!/bin/bash
|
||||
if [[ "$SHOULD_BUILD" == "yes" ]]; then
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
cd VSCode-darwin
|
||||
create-dmg VSCodium.app ..
|
||||
fi
|
||||
cd ..
|
||||
fi
|
||||
@@ -1,16 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ "$SHOULD_BUILD" == "yes" ]]; then
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
cd VSCode-darwin
|
||||
zip -r -X -y ../VSCodium-darwin-${LATEST_MS_TAG}.zip ./*.app
|
||||
elif [[ "$BUILDARCH" == "arm64" ]]; then
|
||||
cd VSCode-linux-arm64
|
||||
tar czf ../VSCodium-linux-arm64-${LATEST_MS_TAG}.tar.gz .
|
||||
else
|
||||
cd VSCode-linux-x64
|
||||
tar czf ../VSCodium-linux-x64-${LATEST_MS_TAG}.tar.gz .
|
||||
fi
|
||||
|
||||
cd ..
|
||||
fi
|
||||
81
docs/build.md
Normal file
@@ -0,0 +1,81 @@
|
||||
# Build
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Dependencies](#dependencies)
|
||||
- [Linux](#dependencies-linux)
|
||||
- [MacOS](#dependencies-macos)
|
||||
- [Windows](#dependencies-windows)
|
||||
- [Build Scripts](#build-scripts)
|
||||
- [Build in Docker](#build-docker)
|
||||
|
||||
## <a id="dependencies"></a>Dependencies
|
||||
|
||||
- node 14
|
||||
- yarn
|
||||
- jq
|
||||
- git
|
||||
|
||||
### <a id="dependencies-linux"></a>Linux
|
||||
|
||||
- GCC
|
||||
- make
|
||||
- pkg-config
|
||||
- libx11-dev
|
||||
- libxkbfile-dev
|
||||
- libsecret-1-dev
|
||||
- fakeroot
|
||||
- rpm
|
||||
- rpmbuild
|
||||
- dpkg
|
||||
- python3
|
||||
- libsecret-1-dev
|
||||
- imagemagick (for AppImage)
|
||||
|
||||
### <a id="dependencies-macos"></a>MacOS
|
||||
|
||||
### <a id="dependencies-windows"></a>Windows
|
||||
|
||||
- powershell
|
||||
- sed
|
||||
- 7z
|
||||
- [WiX Toolset](http://wixtoolset.org/releases/)
|
||||
- python2
|
||||
- 'Tools for Native Modules' from official Node.js installer
|
||||
|
||||
## <a id="build-scripts"></a>Build Scripts
|
||||
|
||||
Each platform has its build helper script in the directory `build`.
|
||||
|
||||
- Linux: `./build/build_linux.sh`
|
||||
- MacOS: `./build/build_macos.sh`
|
||||
- Windows: `powershell -ExecutionPolicy ByPass -File .\build\build_windows.ps1`
|
||||
|
||||
## <a id="build-docker"></a>Build in Docker
|
||||
|
||||
To build for Linux, you can alternatively build VSCodium in docker
|
||||
|
||||
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
|
||||
```
|
||||
|
||||
When inside the container, you can use the following commands to build:
|
||||
```
|
||||
curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
|
||||
sudo apt-get install -y nodejs desktop-file-utils
|
||||
|
||||
npm install -g yarn
|
||||
|
||||
git clone https://github.com/VSCodium/vscodium.git
|
||||
|
||||
cd vscodium
|
||||
|
||||
./get_repo.sh
|
||||
|
||||
export SHOULD_BUILD=yes
|
||||
export OS_NAME=linux
|
||||
export VSCODE_ARCH=x64
|
||||
|
||||
./build.sh
|
||||
```
|
||||
47
get_repo.sh
@@ -1,15 +1,44 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -d vscode ]; then
|
||||
cd vscode
|
||||
git fetch --all
|
||||
mkdir -p vscode
|
||||
cd vscode
|
||||
|
||||
git init -q
|
||||
git remote add origin https://github.com/Microsoft/vscode.git
|
||||
|
||||
# figure out latest tag by calling MS update API
|
||||
if [ "$INSIDER" == "1" ]; then
|
||||
UPDATE_INFO=$(curl https://update.code.visualstudio.com/api/update/darwin/insider/lol)
|
||||
export MS_COMMIT=$(echo $UPDATE_INFO | jq -r '.version')
|
||||
export MS_TAG=$(echo $UPDATE_INFO | jq -r '.name')
|
||||
elif [[ -z "${MS_TAG}" ]]; then
|
||||
UPDATE_INFO=$(curl https://update.code.visualstudio.com/api/update/darwin/stable/lol)
|
||||
export MS_COMMIT=$(echo $UPDATE_INFO | jq -r '.version')
|
||||
export MS_TAG=$(echo $UPDATE_INFO | jq -r '.name')
|
||||
else
|
||||
git clone https://github.com/Microsoft/vscode.git
|
||||
cd vscode
|
||||
reference=$( git ls-remote --tags | grep -x ".*refs\/tags\/${MS_TAG}" | head -1 )
|
||||
|
||||
if [[ -z "${reference}" ]]; then
|
||||
echo "The following tag can't be found: ${MS_TAG}"
|
||||
exit 1
|
||||
elif [[ "${reference}" =~ ^([[:alnum:]]+)[[:space:]]+refs\/tags\/([0-9]+\.[0-9]+\.[0-9]+)$ ]]; then
|
||||
export MS_COMMIT="${BASH_REMATCH[1]}"
|
||||
export MS_TAG="${BASH_REMATCH[2]}"
|
||||
else
|
||||
echo "The following reference can't be parsed: ${reference}"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
export LATEST_MS_COMMIT=$(git rev-list --tags --max-count=1)
|
||||
export LATEST_MS_TAG=$(git describe --tags ${LATEST_MS_COMMIT})
|
||||
echo "Got the latest MS tag: ${LATEST_MS_TAG}"
|
||||
git checkout $LATEST_MS_TAG
|
||||
echo "Got the MS tag: ${MS_TAG} version: ${MS_COMMIT}"
|
||||
|
||||
git fetch --depth 1 origin $MS_COMMIT
|
||||
git checkout FETCH_HEAD
|
||||
|
||||
cd ..
|
||||
|
||||
# for GH actions
|
||||
if [[ $GITHUB_ENV ]]; then
|
||||
echo "MS_TAG=$MS_TAG" >> $GITHUB_ENV
|
||||
echo "MS_COMMIT=$MS_COMMIT" >> $GITHUB_ENV
|
||||
fi
|
||||
|
||||
151
icons/build_icons.sh
Executable file
@@ -0,0 +1,151 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
# DEBUG
|
||||
# set -o xtrace
|
||||
|
||||
check_programs() {
|
||||
for arg in "$@"
|
||||
do
|
||||
if ! command -v $arg >/dev/null 2>&1
|
||||
then
|
||||
echo "$arg could not be found"
|
||||
exit
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
check_programs "icns2png" "composite" "convert" "png2icns" "icotool"
|
||||
|
||||
SRC_PREFIX=""
|
||||
VSCODE_PREFIX=""
|
||||
|
||||
build_darwin_types() {
|
||||
for file in ${VSCODE_PREFIX}vscode/resources/darwin/*
|
||||
do
|
||||
if [ -f "$file" ]; then
|
||||
name=$(basename $file '.icns')
|
||||
|
||||
if [[ $name != 'code' ]] && [ ! -f "${SRC_PREFIX}src/resources/darwin/$name.icns" ]; then
|
||||
icns2png -x -s 512x512 $file -o .
|
||||
|
||||
composite -blend 100% -geometry +323+365 icons/corner_512.png "${name}_512x512x32.png" "$name.png"
|
||||
composite icons/code_darwin.png "$name.png" "$name.png"
|
||||
|
||||
convert "$name.png" -resize 256x256 "${name}_256.png"
|
||||
|
||||
png2icns "${SRC_PREFIX}src/resources/darwin/$name.icns" "$name.png" "${name}_256.png"
|
||||
|
||||
rm "${name}_512x512x32.png" "$name.png" "${name}_256.png"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
build_darwin_main() {
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/darwin/code.icns" ]; then
|
||||
convert "${SRC_PREFIX}src/resources/linux/code.png" -resize 512x512 code_512.png
|
||||
convert "${SRC_PREFIX}src/resources/linux/code.png" -resize 256x256 code_256.png
|
||||
convert "${SRC_PREFIX}src/resources/linux/code.png" -resize 128x128 code_128.png
|
||||
|
||||
png2icns "${SRC_PREFIX}src/resources/darwin/code.icns" code_512.png code_256.png code_128.png
|
||||
|
||||
rm code_512.png code_256.png code_128.png
|
||||
fi
|
||||
}
|
||||
|
||||
build_win32() {
|
||||
for file in ${VSCODE_PREFIX}vscode/resources/win32/*.ico
|
||||
do
|
||||
if [ -f "$file" ]; then
|
||||
name=$(basename $file '.ico')
|
||||
|
||||
if [[ $name != 'code' ]] && [ ! -f "${SRC_PREFIX}src/resources/win32/$name.ico" ]; then
|
||||
icotool -x -w 256 $file
|
||||
|
||||
composite -geometry +150+185 icons/code_64.png "${name}_9_256x256x32.png" "${name}.png"
|
||||
|
||||
convert "${name}.png" -define icon:auto-resize=256,128,96,64,48,32,24,20,16 "${SRC_PREFIX}src/resources/win32/$name.ico"
|
||||
|
||||
rm "${name}_9_256x256x32.png" "${name}.png"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/win32/code.ico" ]; then
|
||||
convert "${SRC_PREFIX}src/resources/linux/code.png" -define icon:auto-resize=256,128,96,64,48,32,24,20,16 "${SRC_PREFIX}src/resources/win32/code.ico"
|
||||
fi
|
||||
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-big-100.bmp" ]; then
|
||||
convert -size 164x314 xc:white "${SRC_PREFIX}src/resources/win32/inno-big-100.bmp"
|
||||
composite -size 126x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-big-100.bmp" "${SRC_PREFIX}src/resources/win32/inno-big-100.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-big-125.bmp" ]; then
|
||||
convert -size 192x386 xc:white "${SRC_PREFIX}src/resources/win32/inno-big-125.bmp"
|
||||
composite -size 147x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-big-125.bmp" "${SRC_PREFIX}src/resources/win32/inno-big-125.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-big-150.bmp" ]; then
|
||||
convert -size 246x459 xc:white "${SRC_PREFIX}src/resources/win32/inno-big-150.bmp"
|
||||
composite -size 190x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-big-150.bmp" "${SRC_PREFIX}src/resources/win32/inno-big-150.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-big-175.bmp" ]; then
|
||||
convert -size 273x556 xc:white "${SRC_PREFIX}src/resources/win32/inno-big-175.bmp"
|
||||
composite -size 211x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-big-175.bmp" "${SRC_PREFIX}src/resources/win32/inno-big-175.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-big-200.bmp" ]; then
|
||||
convert -size 328x604 xc:white "${SRC_PREFIX}src/resources/win32/inno-big-200.bmp"
|
||||
composite -size 255x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-big-200.bmp" "${SRC_PREFIX}src/resources/win32/inno-big-200.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-big-225.bmp" ]; then
|
||||
convert -size 355x700 xc:white "${SRC_PREFIX}src/resources/win32/inno-big-225.bmp"
|
||||
composite -size 273x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-big-225.bmp" "${SRC_PREFIX}src/resources/win32/inno-big-225.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-big-250.bmp" ]; then
|
||||
convert -size 410x797 xc:white "${SRC_PREFIX}src/resources/win32/inno-big-250.bmp"
|
||||
composite -size 317x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-big-250.bmp" "${SRC_PREFIX}src/resources/win32/inno-big-250.bmp"
|
||||
fi
|
||||
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-small-100.bmp" ]; then
|
||||
convert -size 55x55 xc:white "${SRC_PREFIX}src/resources/win32/inno-small-100.bmp"
|
||||
composite -size 44x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-small-100.bmp" "${SRC_PREFIX}src/resources/win32/inno-small-100.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-small-125.bmp" ]; then
|
||||
convert -size 64x68 xc:white "${SRC_PREFIX}src/resources/win32/inno-small-125.bmp"
|
||||
composite -size 52x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-small-125.bmp" "${SRC_PREFIX}src/resources/win32/inno-small-125.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-small-150.bmp" ]; then
|
||||
convert -size 83x80 xc:white "${SRC_PREFIX}src/resources/win32/inno-small-150.bmp"
|
||||
composite -size 63x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-small-150.bmp" "${SRC_PREFIX}src/resources/win32/inno-small-150.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-small-175.bmp" ]; then
|
||||
convert -size 92x97 xc:white "${SRC_PREFIX}src/resources/win32/inno-small-175.bmp"
|
||||
composite -size 76x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-small-175.bmp" "${SRC_PREFIX}src/resources/win32/inno-small-175.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-small-200.bmp" ]; then
|
||||
convert -size 110x106 xc:white "${SRC_PREFIX}src/resources/win32/inno-small-200.bmp"
|
||||
composite -size 86x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-small-200.bmp" "${SRC_PREFIX}src/resources/win32/inno-small-200.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-small-225.bmp" ]; then
|
||||
convert -size 119x123 xc:white "${SRC_PREFIX}src/resources/win32/inno-small-225.bmp"
|
||||
composite -size 103x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-small-225.bmp" "${SRC_PREFIX}src/resources/win32/inno-small-225.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}src/resources/win32/inno-small-250.bmp" ]; then
|
||||
convert -size 138x140 xc:white "${SRC_PREFIX}src/resources/win32/inno-small-250.bmp"
|
||||
composite -size 116x -gravity center icons/codium_only.svg "${SRC_PREFIX}src/resources/win32/inno-small-250.bmp" "${SRC_PREFIX}src/resources/win32/inno-small-250.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}build/windows/msi/resources/wix-banner.bmp" ]; then
|
||||
convert -size 493x58 xc:white "${SRC_PREFIX}build/windows/msi/resources/wix-banner.bmp"
|
||||
composite -geometry +438+6 \( icons/codium_only.svg -resize 50x50 \) "${SRC_PREFIX}build/windows/msi/resources/wix-banner.bmp" "${SRC_PREFIX}build/windows/msi/resources/wix-banner.bmp"
|
||||
fi
|
||||
if [ ! -f "${SRC_PREFIX}build/windows/msi/resources/wix-dialog.bmp" ]; then
|
||||
convert -size 493x312 xc:white "${SRC_PREFIX}build/windows/msi/resources/wix-dialog.bmp"
|
||||
composite -geometry +22+152 \( icons/codium_only.svg -resize 120x90 \) "${SRC_PREFIX}build/windows/msi/resources/wix-dialog.bmp" "${SRC_PREFIX}build/windows/msi/resources/wix-dialog.bmp"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ "$0" == "$BASH_SOURCE" ];
|
||||
then
|
||||
build_darwin_types
|
||||
build_win32
|
||||
fi
|
||||
BIN
icons/code_64.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
icons/code_darwin.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
13
icons/codium_only.svg
Normal file
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0" y="0" width="100" height="100" viewBox="0, 0, 100, 100">
|
||||
<defs>
|
||||
<linearGradient id="Gradient_1" gradientUnits="userSpaceOnUse" x1="2.763" y1="-0.313" x2="94.027" y2="95.408">
|
||||
<stop offset="0" stop-color="#56CCF2"/>
|
||||
<stop offset="1" stop-color="#2F80ED"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g id="Layer_1">
|
||||
<path d="M63.697,1.417 C64.354,0.381 65.529,-0.308 66.763,-0.313 C68.492,-0.317 70.138,0.654 71.139,2.037 C72.082,3.359 72.373,5.03 72.375,6.626 C72.36,8.87 71.843,11.075 71.227,13.222 C69.688,18.289 67.597,23.168 66.035,28.229 C64.315,33.972 63.49,40.372 65.801,46.074 C67.009,42.702 68.204,39.323 69.408,35.947 C69.75,35.055 70.2,34.041 71.156,33.675 C72.487,33.201 73.844,34.59 73.805,35.876 C73.441,37.749 72.735,39.534 72.179,41.356 C67.676,54.892 62.633,68.241 57.777,81.655 C64.235,75.75 70.713,69.867 77.179,63.973 C79.04,62.279 81.058,60.433 81.628,57.873 C82.197,55.36 81.139,52.866 79.94,50.708 C78.555,48.133 76.787,45.684 76.137,42.786 C75.81,41.285 75.909,39.558 76.921,38.328 C77.651,37.402 78.98,36.924 80.101,37.376 C81.208,37.799 81.876,38.862 82.399,39.866 C84.156,43.391 85.252,47.243 85.629,51.165 C86.829,48.744 88.043,46.333 89.245,43.914 C89.971,42.489 90.612,40.96 91.79,39.834 C92.501,39.132 93.537,38.69 94.54,38.918 C95.798,39.196 96.681,40.34 97.019,41.528 C97.402,42.79 96.997,44.104 96.59,45.303 C95.378,48.656 93.474,51.69 91.639,54.727 C89.081,58.747 86.364,62.67 83.398,66.402 C85.093,65.27 86.878,64.079 88.954,63.842 C90.918,63.579 93.089,64.729 93.739,66.646 C94.174,67.951 93.47,69.428 92.288,70.065 C90.554,71.032 88.502,71.019 86.575,71.105 C79.582,71.297 72.767,74.74 68.428,80.221 C65.004,84.592 63.255,90.023 59.78,94.358 C57.588,97 54.491,100.317 51.084,99.584 C46.547,98.609 46.547,91.518 45.416,88.003 C44.833,86.231 43.739,84.612 42.221,83.507 C40.894,82.527 39.305,81.965 37.699,81.657 C34.012,80.949 30.209,81.323 26.531,80.563 C24.69,80.188 22.877,79.45 21.471,78.177 C20.131,77.001 19.205,75.427 18.563,73.78 C17.177,70.192 16.895,66.299 15.663,62.666 C13.88,57.436 10.352,52.812 5.757,49.741 C4.788,49.087 3.735,48.449 3.108,47.429 C2.598,46.632 2.643,45.499 3.311,44.804 C4.437,43.578 6.472,43.477 7.773,44.491 C10.439,46.382 10.824,50.056 13.309,52.112 C13.313,48.718 13.296,45.327 13.29,41.935 C13.298,40.955 13.189,39.9 13.679,39.009 C14.125,38.165 15.359,37.936 16.076,38.569 C17.045,39.381 17.34,40.706 17.478,41.905 C17.96,46.58 18.426,51.257 18.91,55.935 C21.346,53.747 22.465,50.196 21.677,47.011 C21.438,45.994 21.051,44.948 21.27,43.893 C21.449,43.008 22.388,42.385 23.273,42.543 C24.268,42.678 24.978,43.531 25.351,44.407 C25.945,45.859 25.947,47.476 25.827,49.018 C25.474,52.53 23.988,55.773 22.963,59.115 C21.964,62.065 21.277,65.343 22.278,68.39 C23.17,71.239 25.431,73.491 28.084,74.768 C31.359,76.377 35.048,76.877 38.657,77.019 C36.463,73.179 34.077,69.116 34.118,64.548 C34.161,59.949 37.085,56.075 37.875,51.636 C39.221,44.272 35.898,36.267 29.712,32.042 C26.964,30.154 23.665,29.314 20.842,27.563 C18.288,26 15.994,23.218 16.395,20.05 C18.335,19.299 20.501,19.779 22.252,20.787 C25.674,22.613 27.851,26.075 31.29,27.873 C32.498,28.532 33.883,28.858 35.259,28.774 C36.004,26.988 35.259,24.988 34.057,23.597 C31.796,20.873 27.98,20.212 25.616,17.608 C24.431,16.249 23.77,14.307 24.268,12.53 C24.673,11.126 26.126,10.17 27.573,10.276 C29.716,10.409 31.561,11.751 33.026,13.228 C37.873,18.073 40.662,24.663 41.756,31.36 C43.048,39.259 42.044,47.317 40.453,55.095 C40.156,56.68 39.6,58.305 40.011,59.923 C40.188,60.672 40.728,61.445 41.558,61.512 C42.699,61.585 43.642,60.808 44.473,60.127 C47.072,58.004 49.138,55.146 49.99,51.873 C50.656,49.487 50.675,46.989 50.628,44.532 C50.641,43.303 50.55,41.946 51.285,40.882 C51.81,40.06 52.79,39.414 53.798,39.653 C54.588,39.803 55.148,40.488 55.389,41.222 C55.777,42.431 55.718,43.736 55.484,44.969 C54.741,48.372 54.069,51.819 52.723,55.05 C51.773,57.369 50.49,59.574 48.752,61.391 C46.836,63.422 44.469,65.05 42.925,67.417 C41.872,69.034 41.191,71.043 41.648,72.975 C41.982,74.516 43.155,75.774 44.57,76.416 C46.631,77.357 49.133,77.309 51.142,76.25 C52.736,75.388 53.869,73.898 54.771,72.367 C56.36,69.613 57.323,66.555 58.122,63.493 C59.351,58.549 60.075,53.48 60.359,48.393 C60.684,42.96 59.698,37.342 56.959,32.596 C55.503,30.055 53.444,27.891 51.039,26.235 C48.873,24.624 46.491,23.229 44.734,21.142 C43.091,19.208 41.952,16.598 42.55,14.031 C43.674,13.325 45.093,13.202 46.338,13.644 C48.687,14.443 50.527,16.329 51.713,18.463 C53.324,20.978 54.668,23.971 57.506,25.337 C55.197,20.795 52.816,16.292 50.479,11.766 C49.719,10.237 48.97,8.566 49.168,6.817 C49.312,5.484 50.55,4.391 51.887,4.397 C53.074,4.401 54.187,5.069 54.894,5.999 C55.701,7.046 56.087,8.336 56.451,9.589 C58.313,16.071 60.174,22.55 62.043,29.03 C64.392,24.555 65.385,19.37 64.717,14.348 C64.425,11.686 63.643,9.115 63.023,6.518 C62.601,4.819 62.728,2.913 63.697,1.417 z" fill="url(#Gradient_1)" id="Shape"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.1 KiB |
BIN
icons/corner_512.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
@@ -1,22 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
brew update
|
||||
brew install jq zip
|
||||
else
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y fakeroot rpm jq
|
||||
if [[ $BUILDARCH == "arm64" ]]; then
|
||||
echo "deb http://ports.ubuntu.com/ubuntu-ports/ trusty main" | sudo tee -a /etc/apt/sources.list.d/arm64.list >/dev/null
|
||||
sudo dpkg --add-architecture arm64
|
||||
sudo apt-get update
|
||||
sudo apt-get install libc6-dev-arm64-cross gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
|
||||
sudo apt-get install libx11-dev:arm64 libxkbfile-dev:arm64
|
||||
export CC=/usr/bin/aarch64-linux-gnu-gcc
|
||||
export CXX=/usr/bin/aarch64-linux-gnu-g++
|
||||
export CC_host=/usr/bin/gcc
|
||||
export CXX_host=/usr/bin/g++
|
||||
else
|
||||
sudo apt-get install libx11-dev libxkbfile-dev libsecret-1-dev fakeroot rpm jq
|
||||
fi
|
||||
fi
|
||||
15
install_gh.sh
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
GH_ARCH="amd64"
|
||||
|
||||
VERSION=`curl "https://api.github.com/repos/cli/cli/releases/latest" | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/' | cut -c2-`
|
||||
|
||||
curl -sSL "https://github.com/cli/cli/releases/download/v${VERSION}/gh_${VERSION}_linux_${GH_ARCH}.tar.gz" -o "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
|
||||
|
||||
tar xf "gh_${VERSION}_linux_${GH_ARCH}.tar.gz"
|
||||
|
||||
cp "gh_${VERSION}_linux_${GH_ARCH}/bin/gh" /usr/local/bin/
|
||||
|
||||
gh --version
|
||||
35
patches/binary-name.patch
Normal file
@@ -0,0 +1,35 @@
|
||||
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
|
||||
index 2f5a931..ac3d7e6 100644
|
||||
--- a/build/gulpfile.vscode.js
|
||||
+++ b/build/gulpfile.vscode.js
|
||||
@@ -290,7 +290,7 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
|
||||
all = es.merge(all, gulp.src('resources/linux/code.png', { base: '.' }));
|
||||
} else if (platform === 'darwin') {
|
||||
const shortcut = gulp.src('resources/darwin/bin/code.sh')
|
||||
- .pipe(rename('bin/code'));
|
||||
+ .pipe(rename('bin/' + product.applicationName));
|
||||
|
||||
all = es.merge(all, shortcut);
|
||||
}
|
||||
diff --git a/src/vs/platform/native/electron-main/nativeHostMainService.ts b/src/vs/platform/native/electron-main/nativeHostMainService.ts
|
||||
index 3bd0c57..d921c60 100644
|
||||
--- a/src/vs/platform/native/electron-main/nativeHostMainService.ts
|
||||
+++ b/src/vs/platform/native/electron-main/nativeHostMainService.ts
|
||||
@@ -353,7 +353,7 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
|
||||
}
|
||||
|
||||
private async getShellCommandLink(): Promise<{ readonly source: string; readonly target: string }> {
|
||||
- const target = resolve(this.environmentMainService.appRoot, 'bin', 'code');
|
||||
+ const target = resolve(this.environmentMainService.appRoot, 'bin', this.productService.applicationName);
|
||||
const source = `/usr/local/bin/${this.productService.applicationName}`;
|
||||
|
||||
// Ensure source exists
|
||||
@@ -563,7 +563,7 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
|
||||
|
||||
// macOS
|
||||
if (this.environmentMainService.isBuilt) {
|
||||
- return join(this.environmentMainService.appRoot, 'bin', 'code');
|
||||
+ return join(this.environmentMainService.appRoot, 'bin', `${this.productService.applicationName}`);
|
||||
}
|
||||
|
||||
return join(this.environmentMainService.appRoot, 'scripts', 'code-cli.sh');
|
||||
13
patches/cleanup-archive.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/build/gulpfile.vscode.win32.js b/build/gulpfile.vscode.win32.js
|
||||
index 1a73ae9..1b87189 100644
|
||||
--- a/build/gulpfile.vscode.win32.js
|
||||
+++ b/build/gulpfile.vscode.win32.js
|
||||
@@ -126,7 +126,7 @@ defineWin32SetupTasks('arm64', 'user');
|
||||
|
||||
function archiveWin32Setup(arch) {
|
||||
return cb => {
|
||||
- const args = ['a', '-tzip', zipPath(arch), '-x!CodeSignSummary*.md', '.', '-r'];
|
||||
+ const args = ['a', '-tzip', zipPath(arch), '-x!CodeSignSummary*.md', '-x!tools', '.', '-r'];
|
||||
|
||||
cp.spawn(_7z, args, { stdio: 'inherit', cwd: buildPath(arch) })
|
||||
.on('error', cb)
|
||||
13
patches/crash-reporter.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/src/main.js b/src/main.js
|
||||
index 19dde20..d9611f2 100644
|
||||
--- a/src/main.js
|
||||
+++ b/src/main.js
|
||||
@@ -409,6 +409,8 @@ function configureCrashReporter() {
|
||||
argv.splice(endOfArgsMarkerIndex, 0, '--crash-reporter-id', crashReporterId);
|
||||
}
|
||||
}
|
||||
+ } else {
|
||||
+ return;
|
||||
}
|
||||
}
|
||||
|
||||
83
patches/custom-gallery.patch
Normal file
@@ -0,0 +1,83 @@
|
||||
diff --git a/src/vs/base/common/product.ts b/src/vs/base/common/product.ts
|
||||
index 1edc76f..4c0bf98 100644
|
||||
--- a/src/vs/base/common/product.ts
|
||||
+++ b/src/vs/base/common/product.ts
|
||||
@@ -69,6 +69,7 @@ export interface IProductConfiguration {
|
||||
|
||||
readonly extensionsGallery?: {
|
||||
readonly serviceUrl: string;
|
||||
+ readonly cacheUrl?: string;
|
||||
readonly itemUrl: string;
|
||||
readonly resourceUrlTemplate: string;
|
||||
readonly controlUrl: string;
|
||||
diff --git a/src/vs/platform/product/common/product.ts b/src/vs/platform/product/common/product.ts
|
||||
index e22b33e..98cec93 100644
|
||||
--- a/src/vs/platform/product/common/product.ts
|
||||
+++ b/src/vs/platform/product/common/product.ts
|
||||
@@ -4,11 +4,12 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { FileAccess } from 'vs/base/common/network';
|
||||
-import { globals } from 'vs/base/common/platform';
|
||||
+import { globals, isWindows } from 'vs/base/common/platform';
|
||||
import { env } from 'vs/base/common/process';
|
||||
import { IProductConfiguration } from 'vs/base/common/product';
|
||||
import { dirname, joinPath } from 'vs/base/common/resources';
|
||||
import { ISandboxConfiguration } from 'vs/base/parts/sandbox/common/sandboxTypes';
|
||||
+import { getUserDataPath } from 'vs/platform/environment/node/userDataPath';
|
||||
|
||||
/**
|
||||
* @deprecated You MUST use `IProductService` if possible.
|
||||
@@ -34,6 +35,32 @@ else if (typeof require?.__$__nodeRequire === 'function') {
|
||||
product = require.__$__nodeRequire(joinPath(rootPath, 'product.json').fsPath);
|
||||
const pkg = require.__$__nodeRequire(joinPath(rootPath, 'package.json').fsPath) as { version: string };
|
||||
|
||||
+ // Merge user-customized product.json
|
||||
+ try {
|
||||
+ const merge = (...objects: any[]) =>
|
||||
+ objects.reduce((result, current) => {
|
||||
+ Object.keys(current).forEach((key) => {
|
||||
+ if (Array.isArray(result[key]) && Array.isArray(current[key])) {
|
||||
+ result[key] = current[key];
|
||||
+ } else if (typeof result[key] === 'object' && typeof current[key] === 'object') {
|
||||
+ result[key] = merge(result[key], current[key]);
|
||||
+ } else {
|
||||
+ result[key] = current[key];
|
||||
+ }
|
||||
+ });
|
||||
+
|
||||
+ return result;
|
||||
+ }, {}) as any;
|
||||
+
|
||||
+ const userDataPath = getUserDataPath({} as any);
|
||||
+ const userProductPath = isWindows ? `file:///${userDataPath}/product.json` : `file://${userDataPath}/product.json`;
|
||||
+
|
||||
+ const userProduct = require.__$__nodeRequire(FileAccess.asFileUri(userProductPath, require).fsPath);
|
||||
+
|
||||
+ product = merge(product, userProduct);
|
||||
+ } catch (ex) {
|
||||
+ }
|
||||
+
|
||||
// Running out of sources
|
||||
if (env['VSCODE_DEV']) {
|
||||
Object.assign(product, {
|
||||
@@ -44,6 +71,19 @@ else if (typeof require?.__$__nodeRequire === 'function') {
|
||||
});
|
||||
}
|
||||
|
||||
+ // Set user-defined extension gallery
|
||||
+ const { serviceUrl, cacheUrl, itemUrl, controlUrl, recommendationsUrl } = product.extensionsGallery || {}
|
||||
+
|
||||
+ Object.assign(product, {
|
||||
+ extensionsGallery: {
|
||||
+ serviceUrl: env['VSCODE_GALLERY_SERVICE_URL'] || serviceUrl,
|
||||
+ cacheUrl: env['VSCODE_GALLERY_CACHE_URL'] || cacheUrl,
|
||||
+ itemUrl: env['VSCODE_GALLERY_ITEM_URL'] || itemUrl,
|
||||
+ controlUrl: env['VSCODE_GALLERY_CONTROL_URL'] || controlUrl,
|
||||
+ recommendationsUrl: env['VSCODE_GALLERY_RECOMMENDATIONS_URL'] || recommendationsUrl
|
||||
+ }
|
||||
+ })
|
||||
+
|
||||
Object.assign(product, {
|
||||
version: pkg.version
|
||||
});
|
||||
8
patches/fix-rpm-spec.patch
Normal file
@@ -0,0 +1,8 @@
|
||||
--- vscode/resources/linux/rpm/code.spec.template 2021-03-02 19:26:53.000000000 +0100
|
||||
+++ vscode/resources/linux/rpm/code.spec.template.new 2021-03-02 19:28:12.000000000 +0100
|
||||
@@ -69,3 +69,5 @@
|
||||
/usr/share/pixmaps/@@ICON@@.png
|
||||
/usr/share/bash-completion/completions/@@NAME@@
|
||||
/usr/share/zsh/site-functions/_@@NAME@@
|
||||
+
|
||||
+%config(noreplace) /usr/share/@@NAME@@/resources/app/product.json
|
||||
48
patches/report-issue.patch
Normal file
@@ -0,0 +1,48 @@
|
||||
diff --git a/src/vs/code/electron-sandbox/issue/issueReporterMain.ts b/src/vs/code/electron-sandbox/issue/issueReporterMain.ts
|
||||
index fcd4485..8d97e5a 100644
|
||||
--- a/src/vs/code/electron-sandbox/issue/issueReporterMain.ts
|
||||
+++ b/src/vs/code/electron-sandbox/issue/issueReporterMain.ts
|
||||
@@ -682,7 +682,7 @@ export class IssueReporter extends Disposable {
|
||||
|
||||
sourceSelect.innerText = '';
|
||||
sourceSelect.append(this.makeOption('', localize('selectSource', "Select source"), true));
|
||||
- sourceSelect.append(this.makeOption('vscode', localize('vscode', "Visual Studio Code"), false));
|
||||
+ sourceSelect.append(this.makeOption('vscode', localize('vscode', "VSCodium"), false));
|
||||
sourceSelect.append(this.makeOption('extension', localize('extension', "An extension"), false));
|
||||
if (this.configuration.product.reportMarketplaceIssueUrl) {
|
||||
sourceSelect.append(this.makeOption('marketplace', localize('marketplace', "Extensions marketplace"), false));
|
||||
diff --git a/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts b/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts
|
||||
index 0c5855b..654f9a4 100644
|
||||
--- a/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts
|
||||
+++ b/src/vs/workbench/contrib/extensions/electron-sandbox/extensionsSlowActions.ts
|
||||
@@ -144,7 +144,7 @@ class ReportExtensionSlowAction extends Action {
|
||||
- Extension Name: \`${this.extension.name}\`
|
||||
- Extension Version: \`${this.extension.version}\`
|
||||
- OS Version: \`${osVersion}\`
|
||||
-- VS Code version: \`${this._productService.version}\`\n\n${message}`);
|
||||
+- VSCodium version: \`${this._productService.version}\`\n\n${message}`);
|
||||
|
||||
const url = `${this.repoInfo.base}/${this.repoInfo.owner}/${this.repoInfo.repo}/issues/new/?body=${body}&title=${title}`;
|
||||
this._openerService.open(URI.parse(url));
|
||||
diff --git a/src/vs/workbench/contrib/extensions/electron-sandbox/reportExtensionIssueAction.ts b/src/vs/workbench/contrib/extensions/electron-sandbox/reportExtensionIssueAction.ts
|
||||
index f1755db..e77be21 100644
|
||||
--- a/src/vs/workbench/contrib/extensions/electron-sandbox/reportExtensionIssueAction.ts
|
||||
+++ b/src/vs/workbench/contrib/extensions/electron-sandbox/reportExtensionIssueAction.ts
|
||||
@@ -14,7 +14,7 @@ import { ExtensionType, IExtensionDescription } from 'vs/platform/extensions/com
|
||||
import { IOpenerService } from 'vs/platform/opener/common/opener';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
|
||||
-const builtinExtensionIssueUrl = 'https://github.com/microsoft/vscode';
|
||||
+const builtinExtensionIssueUrl = 'https://github.com/VSCodium/vscodium';
|
||||
|
||||
export class ReportExtensionIssueAction extends Action {
|
||||
|
||||
@@ -76,7 +76,7 @@ export class ReportExtensionIssueAction extends Action {
|
||||
- Extension Name: \`${extension.description.name}\`
|
||||
- Extension Version: \`${extension.description.version}\`
|
||||
- OS Version: \`${osVersion}\`
|
||||
-- VS Code version: \`${this.productService.version}\`\n\n${message}`
|
||||
+- VSCodium version: \`${this.productService.version}\`\n\n${message}`
|
||||
);
|
||||
|
||||
return `${baseUrl}${queryStringPrefix}body=${body}&title=${encodeURIComponent(title)}`;
|
||||
13
patches/update-cache-path.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/src/vs/platform/update/electron-main/updateService.win32.ts b/src/vs/platform/update/electron-main/updateService.win32.ts
|
||||
index 93424ca..133657e 100644
|
||||
--- a/src/vs/platform/update/electron-main/updateService.win32.ts
|
||||
+++ b/src/vs/platform/update/electron-main/updateService.win32.ts
|
||||
@@ -53,7 +53,7 @@ export class Win32UpdateService extends AbstractUpdateService {
|
||||
|
||||
@memoize
|
||||
get cachePath(): Promise<string> {
|
||||
- const result = path.join(tmpdir(), `vscode-update-${this.productService.target}-${process.arch}`);
|
||||
+ const result = path.join(tmpdir(), `${this.productService.applicationName}-update-${this.productService.target}-${process.arch}`);
|
||||
return pfs.Promises.mkdir(result, { recursive: true }).then(() => result);
|
||||
}
|
||||
|
||||
392
patches/use-github-pat.patch
Normal file
@@ -0,0 +1,392 @@
|
||||
diff --git a/extensions/github-authentication/src/githubServer.ts b/extensions/github-authentication/src/githubServer.ts
|
||||
index 92313d0..a69da37 100644
|
||||
--- a/extensions/github-authentication/src/githubServer.ts
|
||||
+++ b/extensions/github-authentication/src/githubServer.ts
|
||||
@@ -3,41 +3,13 @@
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
-import * as nls from 'vscode-nls';
|
||||
import * as vscode from 'vscode';
|
||||
import fetch, { Response } from 'node-fetch';
|
||||
-import { v4 as uuid } from 'uuid';
|
||||
-import { PromiseAdapter, promiseFromEvent } from './common/utils';
|
||||
import { ExperimentationTelemetry } from './experimentationService';
|
||||
import { AuthProviderType } from './github';
|
||||
import { Log } from './common/logger';
|
||||
-import { isSupportedEnvironment } from './common/env';
|
||||
-
|
||||
-const localize = nls.loadMessageBundle();
|
||||
-const CLIENT_ID = '01ab8ac9400c4e429b23';
|
||||
|
||||
const NETWORK_ERROR = 'network error';
|
||||
-const AUTH_RELAY_SERVER = 'vscode-auth.github.com';
|
||||
-// const AUTH_RELAY_STAGING_SERVER = 'client-auth-staging-14a768b.herokuapp.com';
|
||||
-
|
||||
-class UriEventHandler extends vscode.EventEmitter<vscode.Uri> implements vscode.UriHandler {
|
||||
- constructor(private readonly Logger: Log) {
|
||||
- super();
|
||||
- }
|
||||
-
|
||||
- public handleUri(uri: vscode.Uri) {
|
||||
- this.Logger.trace('Handling Uri...');
|
||||
- this.fire(uri);
|
||||
- }
|
||||
-}
|
||||
-
|
||||
-function parseQuery(uri: vscode.Uri) {
|
||||
- return uri.query.split('&').reduce((prev: any, current) => {
|
||||
- const queryString = current.split('=');
|
||||
- prev[queryString[0]] = queryString[1];
|
||||
- return prev;
|
||||
- }, {});
|
||||
-}
|
||||
|
||||
export interface IGitHubServer extends vscode.Disposable {
|
||||
login(scopes: string): Promise<string>;
|
||||
@@ -47,13 +19,6 @@ export interface IGitHubServer extends vscode.Disposable {
|
||||
type: AuthProviderType;
|
||||
}
|
||||
|
||||
-interface IGitHubDeviceCodeResponse {
|
||||
- device_code: string;
|
||||
- user_code: string;
|
||||
- verification_uri: string;
|
||||
- interval: number;
|
||||
-}
|
||||
-
|
||||
async function getScopes(token: string, serverUri: vscode.Uri, logger: Log): Promise<string[]> {
|
||||
try {
|
||||
logger.info('Getting token scopes...');
|
||||
@@ -115,315 +80,49 @@ async function getUserInfo(token: string, serverUri: vscode.Uri, logger: Log): P
|
||||
export class GitHubServer implements IGitHubServer {
|
||||
friendlyName = 'GitHub';
|
||||
type = AuthProviderType.github;
|
||||
- private _statusBarItem: vscode.StatusBarItem | undefined;
|
||||
- private _onDidManuallyProvideToken = new vscode.EventEmitter<string | undefined>();
|
||||
-
|
||||
- private _pendingStates = new Map<string, string[]>();
|
||||
- private _codeExchangePromises = new Map<string, { promise: Promise<string>; cancel: vscode.EventEmitter<void> }>();
|
||||
- private _statusBarCommandId = `${this.type}.provide-manually`;
|
||||
- private _disposable: vscode.Disposable;
|
||||
- private _uriHandler = new UriEventHandler(this._logger);
|
||||
|
||||
constructor(private readonly _supportDeviceCodeFlow: boolean, private readonly _logger: Log, private readonly _telemetryReporter: ExperimentationTelemetry) {
|
||||
- this._disposable = vscode.Disposable.from(
|
||||
- vscode.commands.registerCommand(this._statusBarCommandId, () => this.manuallyProvideUri()),
|
||||
- vscode.window.registerUriHandler(this._uriHandler));
|
||||
+ this._supportDeviceCodeFlow;
|
||||
}
|
||||
|
||||
dispose() {
|
||||
- this._disposable.dispose();
|
||||
- }
|
||||
-
|
||||
- // TODO@joaomoreno TODO@TylerLeonhardt
|
||||
- private async isNoCorsEnvironment(): Promise<boolean> {
|
||||
- const uri = await vscode.env.asExternalUri(vscode.Uri.parse(`${vscode.env.uriScheme}://vscode.github-authentication/dummy`));
|
||||
- return (uri.scheme === 'https' && /^((insiders\.)?vscode|github)\./.test(uri.authority)) || (uri.scheme === 'http' && /^localhost/.test(uri.authority));
|
||||
}
|
||||
|
||||
public async login(scopes: string): Promise<string> {
|
||||
this._logger.info(`Logging in for the following scopes: ${scopes}`);
|
||||
|
||||
- const callbackUri = await vscode.env.asExternalUri(vscode.Uri.parse(`${vscode.env.uriScheme}://vscode.github-authentication/did-authenticate`));
|
||||
-
|
||||
- if (!isSupportedEnvironment(callbackUri)) {
|
||||
- const token = this._supportDeviceCodeFlow
|
||||
- ? await this.doDeviceCodeFlow(scopes)
|
||||
- : await vscode.window.showInputBox({ prompt: 'GitHub Personal Access Token', ignoreFocusOut: true });
|
||||
-
|
||||
- if (!token) { throw new Error('No token provided'); }
|
||||
-
|
||||
- const tokenScopes = await getScopes(token, this.getServerUri('/'), this._logger); // Example: ['repo', 'user']
|
||||
- const scopesList = scopes.split(' '); // Example: 'read:user repo user:email'
|
||||
- if (!scopesList.every(scope => {
|
||||
- const included = tokenScopes.includes(scope);
|
||||
- if (included || !scope.includes(':')) {
|
||||
- return included;
|
||||
- }
|
||||
-
|
||||
- return scope.split(':').some(splitScopes => {
|
||||
- return tokenScopes.includes(splitScopes);
|
||||
- });
|
||||
- })) {
|
||||
- throw new Error(`The provided token does not match the requested scopes: ${scopes}`);
|
||||
- }
|
||||
-
|
||||
- return token;
|
||||
- }
|
||||
-
|
||||
- this.updateStatusBarItem(true);
|
||||
-
|
||||
- const state = uuid();
|
||||
- const existingStates = this._pendingStates.get(scopes) || [];
|
||||
- this._pendingStates.set(scopes, [...existingStates, state]);
|
||||
-
|
||||
- const uri = vscode.Uri.parse(`https://${AUTH_RELAY_SERVER}/authorize/?callbackUri=${encodeURIComponent(callbackUri.toString())}&scope=${scopes}&state=${state}&responseType=code&authServer=https://github.com`);
|
||||
- await vscode.env.openExternal(uri);
|
||||
-
|
||||
- // Register a single listener for the URI callback, in case the user starts the login process multiple times
|
||||
- // before completing it.
|
||||
- let codeExchangePromise = this._codeExchangePromises.get(scopes);
|
||||
- if (!codeExchangePromise) {
|
||||
- codeExchangePromise = promiseFromEvent(this._uriHandler.event, this.exchangeCodeForToken(scopes));
|
||||
- this._codeExchangePromises.set(scopes, codeExchangePromise);
|
||||
- }
|
||||
-
|
||||
- return Promise.race([
|
||||
- codeExchangePromise.promise,
|
||||
- promiseFromEvent<string | undefined, string>(this._onDidManuallyProvideToken.event, (token: string | undefined, resolve, reject): void => {
|
||||
- if (!token) {
|
||||
- reject('Cancelled');
|
||||
- } else {
|
||||
- resolve(token);
|
||||
- }
|
||||
- }).promise,
|
||||
- new Promise<string>((_, reject) => setTimeout(() => reject('Cancelled'), 60000))
|
||||
- ]).finally(() => {
|
||||
- this._pendingStates.delete(scopes);
|
||||
- codeExchangePromise?.cancel.fire();
|
||||
- this._codeExchangePromises.delete(scopes);
|
||||
- this.updateStatusBarItem(false);
|
||||
- });
|
||||
- }
|
||||
-
|
||||
- private async doDeviceCodeFlow(scopes: string): Promise<string> {
|
||||
- // Get initial device code
|
||||
- const uri = `https://github.com/login/device/code?client_id=${CLIENT_ID}&scope=${scopes}`;
|
||||
- const result = await fetch(uri, {
|
||||
- method: 'POST',
|
||||
- headers: {
|
||||
- Accept: 'application/json'
|
||||
- }
|
||||
- });
|
||||
- if (!result.ok) {
|
||||
- throw new Error(`Failed to get one-time code: ${await result.text()}`);
|
||||
- }
|
||||
-
|
||||
- const json = await result.json() as IGitHubDeviceCodeResponse;
|
||||
-
|
||||
-
|
||||
- const modalResult = await vscode.window.showInformationMessage(
|
||||
- localize('code.title', "Your Code: {0}", json.user_code),
|
||||
- {
|
||||
- modal: true,
|
||||
- detail: localize('code.detail', "To finish authenticating, navigate to GitHub and paste in the above one-time code.")
|
||||
- }, 'Copy & Continue to GitHub');
|
||||
-
|
||||
- if (modalResult !== 'Copy & Continue to GitHub') {
|
||||
- throw new Error('Cancelled');
|
||||
- }
|
||||
-
|
||||
- await vscode.env.clipboard.writeText(json.user_code);
|
||||
-
|
||||
- const uriToOpen = await vscode.env.asExternalUri(vscode.Uri.parse(json.verification_uri));
|
||||
- await vscode.env.openExternal(uriToOpen);
|
||||
-
|
||||
- return await vscode.window.withProgress<string>({
|
||||
- location: vscode.ProgressLocation.Notification,
|
||||
- cancellable: true,
|
||||
- title: localize(
|
||||
- 'progress',
|
||||
- "Open [{0}]({0}) in a new tab and paste your one-time code: {1}",
|
||||
- json.verification_uri,
|
||||
- json.user_code)
|
||||
- }, async (_, token) => {
|
||||
- return await this.waitForDeviceCodeAccessToken(json, token);
|
||||
- });
|
||||
- }
|
||||
-
|
||||
- private async waitForDeviceCodeAccessToken(
|
||||
- json: IGitHubDeviceCodeResponse,
|
||||
- token: vscode.CancellationToken
|
||||
- ): Promise<string> {
|
||||
-
|
||||
- const refreshTokenUri = `https://github.com/login/oauth/access_token?client_id=${CLIENT_ID}&device_code=${json.device_code}&grant_type=urn:ietf:params:oauth:grant-type:device_code`;
|
||||
-
|
||||
- // Try for 2 minutes
|
||||
- const attempts = 120 / json.interval;
|
||||
- for (let i = 0; i < attempts; i++) {
|
||||
- await new Promise(resolve => setTimeout(resolve, json.interval * 1000));
|
||||
- if (token.isCancellationRequested) {
|
||||
- throw new Error('Cancelled');
|
||||
- }
|
||||
- let accessTokenResult;
|
||||
- try {
|
||||
- accessTokenResult = await fetch(refreshTokenUri, {
|
||||
- method: 'POST',
|
||||
- headers: {
|
||||
- Accept: 'application/json'
|
||||
- }
|
||||
- });
|
||||
- } catch {
|
||||
- continue;
|
||||
- }
|
||||
-
|
||||
- if (!accessTokenResult.ok) {
|
||||
- continue;
|
||||
- }
|
||||
+ const token = await vscode.window.showInputBox({ prompt: 'GitHub Personal Access Token', ignoreFocusOut: true });
|
||||
|
||||
- const accessTokenJson = await accessTokenResult.json();
|
||||
+ if (!token) { throw new Error('No token provided'); }
|
||||
|
||||
- if (accessTokenJson.error === 'authorization_pending') {
|
||||
- continue;
|
||||
- }
|
||||
-
|
||||
- if (accessTokenJson.error) {
|
||||
- throw new Error(accessTokenJson.error_description);
|
||||
+ const tokenScopes = await getScopes(token, this.getServerUri('/'), this._logger); // Example: ['repo', 'user']
|
||||
+ const scopesList = scopes.split(' '); // Example: 'read:user repo user:email'
|
||||
+ if (!scopesList.every(scope => {
|
||||
+ const included = tokenScopes.includes(scope);
|
||||
+ if (included || !scope.includes(':')) {
|
||||
+ return included;
|
||||
}
|
||||
|
||||
- return accessTokenJson.access_token;
|
||||
+ return scope.split(':').some(splitScopes => {
|
||||
+ return tokenScopes.includes(splitScopes);
|
||||
+ });
|
||||
+ })) {
|
||||
+ throw new Error(`The provided token does not match the requested scopes: ${scopes}`);
|
||||
}
|
||||
|
||||
- throw new Error('Cancelled');
|
||||
+ return token;
|
||||
}
|
||||
|
||||
- private exchangeCodeForToken: (scopes: string) => PromiseAdapter<vscode.Uri, string> =
|
||||
- (scopes) => async (uri, resolve, reject) => {
|
||||
- const query = parseQuery(uri);
|
||||
- const code = query.code;
|
||||
-
|
||||
- const acceptedStates = this._pendingStates.get(scopes) || [];
|
||||
- if (!acceptedStates.includes(query.state)) {
|
||||
- // A common scenario of this happening is if you:
|
||||
- // 1. Trigger a sign in with one set of scopes
|
||||
- // 2. Before finishing 1, you trigger a sign in with a different set of scopes
|
||||
- // In this scenario we should just return and wait for the next UriHandler event
|
||||
- // to run as we are probably still waiting on the user to hit 'Continue'
|
||||
- this._logger.info('State not found in accepted state. Skipping this execution...');
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- const url = `https://${AUTH_RELAY_SERVER}/token?code=${code}&state=${query.state}`;
|
||||
- this._logger.info('Exchanging code for token...');
|
||||
-
|
||||
- try {
|
||||
- const result = await fetch(url, {
|
||||
- method: 'POST',
|
||||
- headers: {
|
||||
- Accept: 'application/json'
|
||||
- }
|
||||
- });
|
||||
-
|
||||
- if (result.ok) {
|
||||
- const json = await result.json();
|
||||
- this._logger.info('Token exchange success!');
|
||||
- resolve(json.access_token);
|
||||
- } else {
|
||||
- reject(result.statusText);
|
||||
- }
|
||||
- } catch (ex) {
|
||||
- reject(ex);
|
||||
- }
|
||||
- };
|
||||
-
|
||||
private getServerUri(path: string = '') {
|
||||
const apiUri = vscode.Uri.parse('https://api.github.com');
|
||||
return vscode.Uri.parse(`${apiUri.scheme}://${apiUri.authority}${path}`);
|
||||
}
|
||||
|
||||
- private updateStatusBarItem(isStart?: boolean) {
|
||||
- if (isStart && !this._statusBarItem) {
|
||||
- this._statusBarItem = vscode.window.createStatusBarItem('status.git.signIn', vscode.StatusBarAlignment.Left);
|
||||
- this._statusBarItem.name = localize('status.git.signIn.name', "GitHub Sign-in");
|
||||
- this._statusBarItem.text = localize('signingIn', "$(mark-github) Signing in to github.com...");
|
||||
- this._statusBarItem.command = this._statusBarCommandId;
|
||||
- this._statusBarItem.show();
|
||||
- }
|
||||
-
|
||||
- if (!isStart && this._statusBarItem) {
|
||||
- this._statusBarItem.dispose();
|
||||
- this._statusBarItem = undefined;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- private async manuallyProvideUri() {
|
||||
- const uri = await vscode.window.showInputBox({
|
||||
- prompt: 'Uri',
|
||||
- ignoreFocusOut: true,
|
||||
- validateInput(value) {
|
||||
- if (!value) {
|
||||
- return undefined;
|
||||
- }
|
||||
- const error = localize('validUri', "Please enter a valid Uri from the GitHub login page.");
|
||||
- try {
|
||||
- const uri = vscode.Uri.parse(value.trim());
|
||||
- if (!uri.scheme || uri.scheme === 'file') {
|
||||
- return error;
|
||||
- }
|
||||
- } catch (e) {
|
||||
- return error;
|
||||
- }
|
||||
- return undefined;
|
||||
- }
|
||||
- });
|
||||
- if (!uri) {
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- this._uriHandler.handleUri(vscode.Uri.parse(uri.trim()));
|
||||
- }
|
||||
-
|
||||
public getUserInfo(token: string): Promise<{ id: string; accountName: string }> {
|
||||
return getUserInfo(token, this.getServerUri('/user'), this._logger);
|
||||
}
|
||||
|
||||
- public async sendAdditionalTelemetryInfo(token: string): Promise<void> {
|
||||
- if (!vscode.env.isTelemetryEnabled) {
|
||||
- return;
|
||||
- }
|
||||
- const nocors = await this.isNoCorsEnvironment();
|
||||
-
|
||||
- if (nocors) {
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- try {
|
||||
- const result = await fetch('https://education.github.com/api/user', {
|
||||
- headers: {
|
||||
- Authorization: `token ${token}`,
|
||||
- 'faculty-check-preview': 'true',
|
||||
- 'User-Agent': 'Visual-Studio-Code'
|
||||
- }
|
||||
- });
|
||||
-
|
||||
- if (result.ok) {
|
||||
- const json: { student: boolean; faculty: boolean } = await result.json();
|
||||
-
|
||||
- /* __GDPR__
|
||||
- "session" : {
|
||||
- "isEdu": { "classification": "NonIdentifiableDemographicInfo", "purpose": "FeatureInsight" }
|
||||
- }
|
||||
- */
|
||||
- this._telemetryReporter.sendTelemetryEvent('session', {
|
||||
- isEdu: json.student
|
||||
- ? 'student'
|
||||
- : json.faculty
|
||||
- ? 'faculty'
|
||||
- : 'none'
|
||||
- });
|
||||
- }
|
||||
- } catch (e) {
|
||||
- // No-op
|
||||
- }
|
||||
+ public async sendAdditionalTelemetryInfo(_: string): Promise<void> {
|
||||
}
|
||||
|
||||
public async checkEnterpriseVersion(token: string): Promise<void> {
|
||||
1
patches/user/readme.txt
Normal file
@@ -0,0 +1 @@
|
||||
store user patches at location patches/user and those will be applied to vscode source git by the scripts
|
||||
92
prepare_artifacts.sh
Executable file
@@ -0,0 +1,92 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
npm install -g checksum
|
||||
|
||||
sum_file() {
|
||||
if [[ -f "$1" ]]; then
|
||||
echo "Calcuating checksum for $1"
|
||||
checksum -a sha256 "$1" > "$1".sha256
|
||||
checksum "$1" > "$1".sha1
|
||||
fi
|
||||
}
|
||||
|
||||
mkdir artifacts
|
||||
|
||||
if [[ "${OS_NAME}" == "osx" ]]; then
|
||||
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
|
||||
echo "Building and moving ZIP"
|
||||
cd "VSCode-darwin-${VSCODE_ARCH}"
|
||||
zip -r -X -y ../artifacts/VSCodium-darwin-${VSCODE_ARCH}-${MS_TAG}.zip ./*.app
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_DMG}" != "no" ]]; then
|
||||
echo "Building and moving DMG"
|
||||
pushd "VSCode-darwin-${VSCODE_ARCH}"
|
||||
npx create-dmg VSCodium.app ..
|
||||
mv "../VSCodium ${MS_TAG}.dmg" "../artifacts/VSCodium.${VSCODE_ARCH}.${MS_TAG}.dmg"
|
||||
popd
|
||||
fi
|
||||
elif [[ "${OS_NAME}" == "windows" ]]; then
|
||||
if [[ "${SHOULD_BUILD_ZIP}" != "no" ]]; then
|
||||
echo "Moving ZIP"
|
||||
mv vscode\\.build\\win32-${VSCODE_ARCH}\\archive\\VSCode-win32-${VSCODE_ARCH}.zip artifacts\\VSCodium-win32-${VSCODE_ARCH}-${MS_TAG}.zip
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_EXE_SYS}" != "no" ]]; then
|
||||
echo "Moving System EXE"
|
||||
mv vscode\\.build\\win32-${VSCODE_ARCH}\\system-setup\\VSCodeSetup.exe artifacts\\VSCodiumSetup-${VSCODE_ARCH}-${MS_TAG}.exe
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_EXE_USR}" != "no" ]]; then
|
||||
echo "Moving User EXE"
|
||||
mv vscode\\.build\\win32-${VSCODE_ARCH}\\user-setup\\VSCodeSetup.exe artifacts\\VSCodiumUserSetup-${VSCODE_ARCH}-${MS_TAG}.exe
|
||||
fi
|
||||
|
||||
if [[ "${VSCODE_ARCH}" == "ia32" || "${VSCODE_ARCH}" == "x64" ]]; then
|
||||
if [[ "${SHOULD_BUILD_MSI}" != "no" ]]; then
|
||||
echo "Moving MSI"
|
||||
mv build\\windows\\msi\\releasedir\\VSCodium-${VSCODE_ARCH}-${MS_TAG}.msi artifacts/
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_MSI_NOUP}" != "no" ]]; then
|
||||
echo "Moving MSI with disabled updates"
|
||||
mv build\\windows\\msi\\releasedir\\VSCodium-${VSCODE_ARCH}-updates-disabled-${MS_TAG}.msi artifacts/
|
||||
fi
|
||||
fi
|
||||
else
|
||||
if [[ "${SHOULD_BUILD_TAR}" != "no" ]]; then
|
||||
echo "Building and moving TAR"
|
||||
cd VSCode-linux-${VSCODE_ARCH}
|
||||
tar czf ../artifacts/VSCodium-linux-${VSCODE_ARCH}-${MS_TAG}.tar.gz .
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_DEB}" != "no" ]]; then
|
||||
echo "Moving DEB"
|
||||
mv vscode/.build/linux/deb/*/deb/*.deb artifacts/
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_RPM}" != "no" ]]; then
|
||||
echo "Moving RPM"
|
||||
mv vscode/.build/linux/rpm/*/*.rpm artifacts/
|
||||
fi
|
||||
|
||||
if [[ "${SHOULD_BUILD_APPIMAGE}" != "no" ]]; then
|
||||
echo "Moving AppImage"
|
||||
mv build/linux/appimage/out/*.AppImage* artifacts/
|
||||
fi
|
||||
fi
|
||||
|
||||
cd artifacts
|
||||
|
||||
for FILE in *
|
||||
do
|
||||
if [[ -f "${FILE}" ]]; then
|
||||
sum_file "${FILE}"
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
116
prepare_vscode.sh
Executable file
@@ -0,0 +1,116 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
cp -rp src/* vscode/
|
||||
cp -f LICENSE vscode/LICENSE.txt
|
||||
|
||||
cd vscode || exit
|
||||
|
||||
../update_settings.sh
|
||||
|
||||
# apply patches
|
||||
{ set +x; } 2>/dev/null
|
||||
|
||||
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 1>&2
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
for file in ../patches/user/*.patch; do
|
||||
if [ -f "$file" ]; then
|
||||
echo applying user patch: $file;
|
||||
git apply --ignore-whitespace "$file"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo failed to apply patch $file 1>&2
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
set -x
|
||||
|
||||
if [[ "$OS_NAME" == "osx" ]]; then
|
||||
CHILD_CONCURRENCY=1 yarn --frozen-lockfile --ignore-optional
|
||||
npm_config_argv='{"original":["--ignore-optional"]}' yarn postinstall
|
||||
else
|
||||
CHILD_CONCURRENCY=1 yarn --frozen-lockfile
|
||||
fi
|
||||
|
||||
mv product.json product.json.bak
|
||||
|
||||
# set fields in product.json
|
||||
checksumFailMoreInfoUrl='setpath(["checksumFailMoreInfoUrl"]; "https://go.microsoft.com/fwlink/?LinkId=828886")'
|
||||
tipsAndTricksUrl='setpath(["tipsAndTricksUrl"]; "https://go.microsoft.com/fwlink/?linkid=852118")'
|
||||
twitterUrl='setpath(["twitterUrl"]; "https://go.microsoft.com/fwlink/?LinkID=533687")'
|
||||
requestFeatureUrl='setpath(["requestFeatureUrl"]; "https://go.microsoft.com/fwlink/?LinkID=533482")'
|
||||
documentationUrl='setpath(["documentationUrl"]; "https://go.microsoft.com/fwlink/?LinkID=533484#vscode")'
|
||||
introductoryVideosUrl='setpath(["introductoryVideosUrl"]; "https://go.microsoft.com/fwlink/?linkid=832146")'
|
||||
extensionAllowedBadgeProviders='setpath(["extensionAllowedBadgeProviders"]; ["api.bintray.com", "api.travis-ci.com", "api.travis-ci.org", "app.fossa.io", "badge.fury.io", "badge.waffle.io", "badgen.net", "badges.frapsoft.com", "badges.gitter.im", "badges.greenkeeper.io", "cdn.travis-ci.com", "cdn.travis-ci.org", "ci.appveyor.com", "circleci.com", "cla.opensource.microsoft.com", "codacy.com", "codeclimate.com", "codecov.io", "coveralls.io", "david-dm.org", "deepscan.io", "dev.azure.com", "flat.badgen.net", "gemnasium.com", "githost.io", "gitlab.com", "godoc.org", "goreportcard.com", "img.shields.io", "isitmaintained.com", "marketplace.visualstudio.com", "nodesecurity.io", "opencollective.com", "snyk.io", "travis-ci.com", "travis-ci.org", "visualstudio.com", "vsmarketplacebadge.apphb.com", "www.bithound.io", "www.versioneye.com"])'
|
||||
updateUrl='setpath(["updateUrl"]; "https://vscodium.now.sh")'
|
||||
releaseNotesUrl='setpath(["releaseNotesUrl"]; "https://go.microsoft.com/fwlink/?LinkID=533483#vscode")'
|
||||
keyboardShortcutsUrlMac='setpath(["keyboardShortcutsUrlMac"]; "https://go.microsoft.com/fwlink/?linkid=832143")'
|
||||
keyboardShortcutsUrlLinux='setpath(["keyboardShortcutsUrlLinux"]; "https://go.microsoft.com/fwlink/?linkid=832144")'
|
||||
keyboardShortcutsUrlWin='setpath(["keyboardShortcutsUrlWin"]; "https://go.microsoft.com/fwlink/?linkid=832145")'
|
||||
quality='setpath(["quality"]; "stable")'
|
||||
extensionsGallery='setpath(["extensionsGallery"]; {"serviceUrl": "https://open-vsx.org/vscode/gallery", "itemUrl": "https://open-vsx.org/vscode/item"})'
|
||||
linkProtectionTrustedDomains='setpath(["linkProtectionTrustedDomains"]; ["https://open-vsx.org"])'
|
||||
nameShort='setpath(["nameShort"]; "VSCodium")'
|
||||
nameLong='setpath(["nameLong"]; "VSCodium")'
|
||||
linuxIconName='setpath(["linuxIconName"]; "vscodium")'
|
||||
applicationName='setpath(["applicationName"]; "codium")'
|
||||
win32MutexName='setpath(["win32MutexName"]; "vscodium")'
|
||||
win32DirName='setpath(["win32DirName"]; "VSCodium")'
|
||||
win32NameVersion='setpath(["win32NameVersion"]; "VSCodium")'
|
||||
win32RegValueName='setpath(["win32RegValueName"]; "VSCodium")'
|
||||
win32AppUserModelId='setpath(["win32AppUserModelId"]; "Microsoft.VSCodium")'
|
||||
win32ShellNameShort='setpath(["win32ShellNameShort"]; "VSCodium")'
|
||||
win32x64UserAppId='setpath (["win32x64UserAppId"]; "{{2E1F05D1-C245-4562-81EE-28188DB6FD17}")'
|
||||
urlProtocol='setpath(["urlProtocol"]; "vscodium")'
|
||||
extensionAllowedProposedApi='setpath(["extensionAllowedProposedApi"]; getpath(["extensionAllowedProposedApi"]) + ["ms-vscode.cpptools", "ms-azuretools.vscode-docker", "visualstudioexptteam.vscodeintellicode", "GitHub.codespaces", "GitHub.vscode-pull-request-github-insiders", "GitHub.vscode-pull-request-github", "Microsoft.vscode-nmake-tools", "ms-ai-tools.notebook-renderers", "ms-dotnettools.dotnet-interactive-vscode", "ms-python.gather", "ms-python.python", "ms-toolsai.jupyter", "ms-toolsai.vscode-ai", "ms-toolsai.vscode-ai-remote", "ms-vscode-remote.remote-containers-nightly", "ms-vscode-remote.remote-containers", "ms-vscode-remote.remote-ssh-edit-nightly", "ms-vscode-remote.remote-ssh-edit", "ms-vscode-remote.remote-ssh-nightly", "ms-vscode-remote.remote-ssh", "ms-vscode-remote.remote-wsl-nightly", "ms-vscode-remote.remote-wsl", "ms-vscode-remote.remote-wsl-recommender", "ms-vscode-remote.vscode-remote-extensionpack-nightly", "ms-vscode-remote.vscode-remote-extensionpack", "ms-vscode.azure-account", "ms-vscode.azure-sphere-tools-ui", "ms-vscode.azure-sphere-tools", "ms-vscode.github-browser", "ms-vscode.github-richnav", "ms-vscode.js-debug-nightly", "ms-vscode.js-debug", "ms-vscode.lsif-browser", "ms-vscode.vscode-js-profile-flame", "ms-vscode.vscode-js-profile-table", "ms-vscode.vscode-selfhost-test-provider", "ms-vsliveshare.cloudenv-explorer", "ms-vsliveshare.cloudenv", "ms-vsliveshare.vsliveshare", "ms-vsonline.vsonline", "dbaeumer.vscode-eslint"])'
|
||||
serverDataFolderName='setpath(["serverDataFolderName"]; ".vscode-server-oss")'
|
||||
reportIssueUrl='setpath(["reportIssueUrl"]; "https://github.com/VSCodium/vscodium/issues/new/choose")'
|
||||
licenseUrl='setpath(["licenseUrl"]; "https://github.com/VSCodium/vscodium/blob/master/LICENSE")'
|
||||
|
||||
product_json_changes="${checksumFailMoreInfoUrl} | ${tipsAndTricksUrl} | ${twitterUrl} | ${requestFeatureUrl} | ${documentationUrl} | ${introductoryVideosUrl} | ${extensionAllowedBadgeProviders} | ${updateUrl} | ${releaseNotesUrl} | ${keyboardShortcutsUrlMac} | ${keyboardShortcutsUrlLinux} | ${keyboardShortcutsUrlWin} | ${quality} | ${extensionsGallery} | ${linkProtectionTrustedDomains} | ${nameShort} | ${nameLong} | ${linuxIconName} | ${applicationName} | ${win32MutexName} | ${win32DirName} | ${win32NameVersion} | ${win32RegValueName} | ${win32AppUserModelId} | ${win32ShellNameShort} | ${win32x64UserAppId} | ${urlProtocol} | ${extensionAllowedProposedApi} | ${serverDataFolderName} | ${reportIssueUrl} | ${licenseUrl}"
|
||||
cat product.json.bak | jq "${product_json_changes}" > product.json
|
||||
cat product.json
|
||||
|
||||
../undo_telemetry.sh
|
||||
|
||||
if [[ "$OS_NAME" == "linux" ]]; then
|
||||
# microsoft adds their apt repo to sources
|
||||
# unless the app name is code-oss
|
||||
# as we are renaming the application to vscodium
|
||||
# we need to edit a line in the post install template
|
||||
sed -i "s/code-oss/codium/" resources/linux/debian/postinst.template
|
||||
|
||||
# fix the packages metadata
|
||||
# code.appdata.xml
|
||||
sed -i 's|Visual Studio Code|VSCodium|g' resources/linux/code.appdata.xml
|
||||
sed -i 's|https://code.visualstudio.com/docs/setup/linux|https://github.com/VSCodium/vscodium#download-install|' resources/linux/code.appdata.xml
|
||||
sed -i 's|https://code.visualstudio.com/home/home-screenshot-linux-lg.png|https://vscodium.com/img/vscodium.png|' resources/linux/code.appdata.xml
|
||||
sed -i 's|https://code.visualstudio.com|https://vscodium.com|' resources/linux/code.appdata.xml
|
||||
|
||||
# control.template
|
||||
sed -i 's|Microsoft Corporation <vscode-linux@microsoft.com>|VSCodium Team https://github.com/VSCodium/vscodium/graphs/contributors|' resources/linux/debian/control.template
|
||||
sed -i 's|https://code.visualstudio.com|https://vscodium.com|' resources/linux/debian/control.template
|
||||
sed -i 's|Visual Studio Code|VSCodium|g' resources/linux/debian/control.template
|
||||
sed -i 's|https://code.visualstudio.com/docs/setup/linux|https://github.com/VSCodium/vscodium#download-install|' resources/linux/debian/control.template
|
||||
|
||||
# code.spec.template
|
||||
sed -i 's|https://code.visualstudio.com/docs/setup/linux|https://github.com/VSCodium/vscodium#download-install|' resources/linux/rpm/code.spec.template
|
||||
sed -i 's|Microsoft Corporation|VSCodium Team|' resources/linux/rpm/code.spec.template
|
||||
sed -i 's|Visual Studio Code Team <vscode-linux@microsoft.com>|VSCodium Team https://github.com/VSCodium/vscodium/graphs/contributors|' resources/linux/rpm/code.spec.template
|
||||
sed -i 's|https://code.visualstudio.com|https://vscodium.com|' resources/linux/rpm/code.spec.template
|
||||
sed -i 's|Visual Studio Code|VSCodium|' resources/linux/rpm/code.spec.template
|
||||
|
||||
# snapcraft.yaml
|
||||
sed -i 's|Visual Studio Code|VSCodium|' resources/linux/rpm/code.spec.template
|
||||
fi
|
||||
|
||||
cd ..
|
||||
66
release.sh
Executable file
@@ -0,0 +1,66 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if [[ -z "${GITHUB_TOKEN}" ]]; then
|
||||
echo "Will not release because no GITHUB_TOKEN defined"
|
||||
exit
|
||||
fi
|
||||
|
||||
npm install -g github-release-cli
|
||||
|
||||
if [[ $( gh release view "${MS_TAG}" 2>&1 ) =~ "release not found" ]]; then
|
||||
echo "Creating release '${MS_TAG}'"
|
||||
gh release create "${MS_TAG}"
|
||||
fi
|
||||
|
||||
cd artifacts
|
||||
|
||||
set +e
|
||||
|
||||
OWNER="${GITHUB_REPOSITORY_OWNER:-"VSCodium"}"
|
||||
REPO_NAME="${GITHUB_REPOSITORY:(${#OWNER}+1)}"
|
||||
REPOSITORY="${REPO_NAME:-"vscodium"}"
|
||||
|
||||
for FILE in *
|
||||
do
|
||||
if [[ -f "${FILE}" ]] && [[ "${FILE}" != *.sha1 ]] && [[ "${FILE}" != *.sha256 ]]; then
|
||||
echo "::group::Uploading '${FILE}' at $( date "+%T" )"
|
||||
gh release upload "${MS_TAG}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256"
|
||||
|
||||
EXIT_STATUS=$?
|
||||
echo "exit: $EXIT_STATUS"
|
||||
|
||||
if (( $EXIT_STATUS )); then
|
||||
for (( i=0; i<10; i++ ))
|
||||
do
|
||||
github-release delete --owner "${OWNER}" --repo "${REPOSITORY}" --tag "${MS_TAG}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256"
|
||||
|
||||
sleep $(( 15 * (i + 1)))
|
||||
|
||||
echo "RE-Uploading '${FILE}' at $( date "+%T" )"
|
||||
gh release upload "${MS_TAG}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256"
|
||||
|
||||
EXIT_STATUS=$?
|
||||
echo "exit: $EXIT_STATUS"
|
||||
|
||||
if ! (( $EXIT_STATUS )); then
|
||||
break
|
||||
fi
|
||||
done
|
||||
echo "exit: $EXIT_STATUS"
|
||||
|
||||
if (( $EXIT_STATUS )); then
|
||||
echo "'${FILE}' hasn't been uploaded!"
|
||||
|
||||
github-release delete --owner "${OWNER}" --repo "${REPOSITORY}" --tag "${MS_TAG}" "${FILE}" "${FILE}.sha1" "${FILE}.sha256"
|
||||
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "::endgroup::"
|
||||
fi
|
||||
done
|
||||
|
||||
cd ..
|
||||
@@ -1,23 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# thanks to https://www.jviotti.com/2016/03/16/how-to-code-sign-os-x-electron-apps-in-travis-ci.html
|
||||
# for the helpful instructions
|
||||
if [[ "$SHOULD_BUILD" == "yes" ]]; then
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
if [ -d "VSCode-darwin" ]; then # just in case the build failed
|
||||
cd VSCode-darwin
|
||||
export CERTIFICATE_P12=VSCodium.p12
|
||||
echo $CERTIFICATE_OSX_P12 | base64 --decode > $CERTIFICATE_P12
|
||||
export KEYCHAIN=build.keychain
|
||||
security create-keychain -p mysecretpassword $KEYCHAIN
|
||||
security default-keychain -s $KEYCHAIN
|
||||
security unlock-keychain -p mysecretpassword $KEYCHAIN
|
||||
security import $CERTIFICATE_P12 -k $KEYCHAIN -P $CERTIFICATE_OSX_PASSWORD -T /usr/bin/codesign
|
||||
|
||||
# https://docs.travis-ci.com/user/common-build-problems/
|
||||
security set-key-partition-list -S apple-tool:,apple: -s -k mysecretpassword $KEYCHAIN
|
||||
|
||||
codesign --deep --force --verbose --sign "$CERTIFICATE_OSX_ID" VSCodium.app
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
BIN
src/resources/darwin/go.icns
Normal file
|
Before Width: | Height: | Size: 361 KiB After Width: | Height: | Size: 153 KiB |
|
Before Width: | Height: | Size: 361 KiB After Width: | Height: | Size: 151 KiB |
|
Before Width: | Height: | Size: 335 KiB After Width: | Height: | Size: 163 KiB |
|
Before Width: | Height: | Size: 361 KiB After Width: | Height: | Size: 152 KiB |
|
Before Width: | Height: | Size: 361 KiB After Width: | Height: | Size: 151 KiB |