vscode/vscode.spec

107 lines
2.6 KiB
RPMSpec

%define _optdir /opt
%define debug %nil
%define debug_package %nil
Name: vscode
Version: 1.46.1
Release: 1
Summary: Visual Studio Code
Group: Development/Tools
License: MIT
URL: https://code.visualstudio.com/
Source0: https://github.com/microsoft/vscode/archive/%{version}/%{name}-%{version}.tar.gz
Source1000: %{name}.rpmlintrc
BuildRequires: nodejs
BuildRequires: yarn
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(libsecret-1)
BuildRequires: pkgconfig(xkbfile)
BuildRequires: imagemagick
%description
Visual Studio Code is a new choice of tool that
combines the simplicity of a code editor with
what developers need for the core edit-build-debug cycle.
%prep
%setup -q
%build
yarn
yarn run compile
yarn add electron-packager
mkdir -p prebuild
cp -a package.json product.json out extensions node_modules prebuild/
%ifarch x86_64
./node_modules/.bin/electron-packager ./prebuild/ %{name} --platform=linux --arch=x64 --out=dist/ --name=vscode
%else
./node_modules/.bin/electron-packager ./prebuild/ %{name} --platform=linux --arch=i32 --out=dist/ --name=vscode
%endif
#./node_modules/.bin/gulp vscode-linux-x64
#yarn run download-builtin-extensions
%install
install -d %{buildroot}%{_bindir} \
%{buildroot}%{_optdir}/%{name} \
%{buildroot}%{_datadir}/applications \
%{buildroot}%{_datadir}/pixmaps \
%{buildroot}%{_iconsdir}
%ifarch x86_64
cp -a dist/vscode-linux-x64/* %{buildroot}%{_optdir}/%{name}
%else
cp -a dist/vscode-linux-i32/* %{buildroot}%{_optdir}/%{name}
%endif
# start script
cat > %{buildroot}%{_bindir}/%{name} << EOF
#!/bin/bash
cd /opt/%{name}
./%{name} \"\$@\"
EOF
chmod +x %{buildroot}%{_bindir}/%{name}
# menu-entry
cat >> %{buildroot}%{_datadir}/applications/%{name}.desktop << EOF
[Desktop Entry]
Name=%{name}
Comment=Code Editing. Redefined.
GenericName=%{name}
Exec=%{name} --no-sandbox \% F
Icon=%{name}
Type=Application
StartupNotify=false
StartupWMClass=%{name}
Categories=Utility;TextEditor;Development;IDE;
MimeType=text/plain;inode/directory;
Actions=new-empty-window;
Keywords=vscode;
[Desktop Action new-empty-window]
Name=New Empty Window
Exec=%{name} --no-sandbox --new-window \% F
Icon=%{name}
EOF
# icons
cd resources/linux/rpm
for x in 16 24 32 48 64 96 128 256 512; do
install -d %{buildroot}%{_iconsdir}/hicolor/${x}x${x}/apps/
convert -resize ${x}x${x} code.xpm %{buildroot}%{_iconsdir}/hicolor/${x}x${x}/apps/%{name}.png
done
install -Dm0644 code.xpm %{buildroot}%{_datadir}/pixmaps/%{name}.png
%files
%doc LICENSE.txt README.md
%{_bindir}/%{name}
%{_optdir}/%{name}
%{_datadir}/applications/%{name}.desktop
%{_iconsdir}/hicolor/*/apps/%{name}.png
%{_datadir}/pixmaps/%{name}.png