Skip to content

Commit ccceaa2

Browse files
committed
Automatically install Bash and Zsh completions in deb/rpm
1 parent 20d5a6b commit ccceaa2

2 files changed

Lines changed: 20 additions & 2 deletions

File tree

build/gulpfile.vscode.linux.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,12 @@ function prepareDebPackage(arch) {
4444
const icon = gulp.src('resources/linux/code.png', { base: '.' })
4545
.pipe(rename('usr/share/pixmaps/' + product.applicationName + '.png'));
4646

47+
const bash_completion = gulp.src('resources/completions/bash/code')
48+
.pipe(rename('usr/share/bash-completion/completions/code'));
49+
50+
const zsh_completion = gulp.src('resources/completions/zsh/_code')
51+
.pipe(rename('usr/share/zsh/vendor-completions/_code'));
52+
4753
const code = gulp.src(binaryDir + '/**/*', { base: binaryDir })
4854
.pipe(rename(function (p) { p.dirname = 'usr/share/' + product.applicationName + '/' + p.dirname; }));
4955

@@ -78,7 +84,7 @@ function prepareDebPackage(arch) {
7884
.pipe(replace('@@UPDATEURL@@', product.updateUrl || '@@UPDATEURL@@'))
7985
.pipe(rename('DEBIAN/postinst'));
8086

81-
const all = es.merge(control, postinst, postrm, prerm, desktop, appdata, icon, code);
87+
const all = es.merge(control, postinst, postrm, prerm, desktop, appdata, icon, bash_completion, zsh_completion, code);
8288

8389
return all.pipe(vfs.dest(destination));
8490
};
@@ -122,6 +128,12 @@ function prepareRpmPackage(arch) {
122128
const icon = gulp.src('resources/linux/code.png', { base: '.' })
123129
.pipe(rename('BUILD/usr/share/pixmaps/' + product.applicationName + '.png'));
124130

131+
const bash_completion = gulp.src('resources/completions/bash/code')
132+
.pipe(rename('BUILD/usr/share/bash-completion/completions/code'));
133+
134+
const zsh_completion = gulp.src('resources/completions/zsh/_code')
135+
.pipe(rename('BUILD/usr/share/zsh/site-functions/_code'));
136+
125137
const code = gulp.src(binaryDir + '/**/*', { base: binaryDir })
126138
.pipe(rename(function (p) { p.dirname = 'BUILD/usr/share/' + product.applicationName + '/' + p.dirname; }));
127139

@@ -142,7 +154,7 @@ function prepareRpmPackage(arch) {
142154
const specIcon = gulp.src('resources/linux/rpm/code.xpm', { base: '.' })
143155
.pipe(rename('SOURCES/' + product.applicationName + '.xpm'));
144156

145-
const all = es.merge(code, desktop, appdata, icon, spec, specIcon);
157+
const all = es.merge(code, desktop, appdata, icon, bash_completion, zsh_completion, spec, specIcon);
146158

147159
return all.pipe(vfs.dest(getRpmBuildPath(rpmArch)));
148160
};

resources/linux/rpm/code.spec.template

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,13 @@ Visual Studio Code is a new choice of tool that combines the simplicity of a cod
1818
mkdir -p %{buildroot}/usr/share/@@NAME@@
1919
mkdir -p %{buildroot}/usr/share/applications
2020
mkdir -p %{buildroot}/usr/share/pixmaps
21+
mkdir -p %{buildroot}/usr/share/bash-completion/completions
22+
mkdir -p %{buildroot}/usr/share/zsh/site-functions
2123
cp -r usr/share/@@NAME@@/* %{buildroot}/usr/share/@@NAME@@
2224
cp -r usr/share/applications/@@NAME@@.desktop %{buildroot}/usr/share/applications
2325
cp -r usr/share/pixmaps/@@NAME@@.png %{buildroot}/usr/share/pixmaps
26+
cp usr/share/bash-completion/completions/code %{buildroot}/usr/share/bash-completion/completions/code
27+
cp usr/share/zsh/site-functions/_code %{buildroot}/usr/share/zsh/site-functions/_code
2428

2529
%post
2630
# Remove the legacy bin command if this is the stable build
@@ -52,3 +56,5 @@ fi
5256
/usr/share/@@NAME@@/
5357
/usr/share/applications/@@NAME@@.desktop
5458
/usr/share/pixmaps/@@NAME@@.png
59+
/usr/share/bash-completion/completions/code
60+
/usr/share/zsh/site-functions/_code

0 commit comments

Comments
 (0)