%{?nodejs_default_filter} %define pkg_name bash-language-server Name: nodejs-bash-language-server Version: 2.0.0 Release: 1%{?dist} Summary: A language server for Bash License: MIT Url: https://github.com/bash-lsp/bash-language-server Source0: %{url}/archive/server-%{version}/%{pkg_name}-%{version}.tar.gz # Create with `bash prepare_vendor.sh` Source1: %{pkg_name}-%{version}-vendor.tar.xz BuildRequires: fdupes BuildRequires: nodejs-typescript BuildRequires: nodejs-packaging BuildRequires: npm BuildRequires: perl-interpreter BuildRequires: rsync BuildRequires: yarnpkg BuildArch: noarch ExclusiveArch: %{nodejs_arches} noarch %description Bash language server implementation based on Tree Sitter and its grammar for Bash with explainshell integration. %prep %autosetup -n %{pkg_name}-server-%{version} -a1 -p1 %build export YARN_CACHE_FOLDER="$(pwd)/.package-cache" yarn install --offline npm run compile %install export YARN_CACHE_FOLDER="$(pwd)/.package-cache" # Only install production dependencies in node_modules yarn install --production --offline for S in $(grep -l '#!.*node' \ server/bin/* \ server/node_modules/acorn/bin/* \ server/node_modules/ajv/scripts/* \ server/node_modules/escodegen/bin/* \ server/node_modules/esprima/bin/* \ server/node_modules/performance-now/test/scripts/* \ server/node_modules/pn/scripts/* \ server/node_modules/sshpk/bin/* \ server/node_modules/uuid/bin/* \ server/node_modules/vscode-languageserver/bin/* \ ) ; do SB="${S}.backup" cp ${S} ${SB} perl -p -i -e 's|#!/usr/bin/env node|#!%{_bindir}/node|g' $S diff -urN ${SB} ${S} || : rm ${SB} done install -d -m 0755 %{buildroot}%{_bindir} ln -s %{nodejs_sitelib}/%{pkg_name}/bin/main.js %{buildroot}%{_bindir}/%{pkg_name} install -d -m 0755 %{buildroot}%{nodejs_sitelib}/%{pkg_name}/ rsync -av server/ %{buildroot}%{nodejs_sitelib}/%{pkg_name}/ rm -rf %{buildroot}%{nodejs_sitelib}/%{pkg_name}/node_modules/performance-now/test/ chmod 0644 %{buildroot}%{nodejs_sitelib}/%{pkg_name}/tree-sitter-bash.wasm \ %{buildroot}%{nodejs_sitelib}/%{pkg_name}/node_modules/web-tree-sitter/tree-sitter.wasm find %{buildroot}%{nodejs_sitelib}/%{pkg_name} -name "*.bak" -delete find %{buildroot}%{nodejs_sitelib}/%{pkg_name} -type f -name "\.*" -delete %fdupes %{buildroot}%{nodejs_sitelib}/%{pkg_name} %files %license LICENSE %doc README.md %{_bindir}/%{pkg_name} %dir %{nodejs_sitelib} %{nodejs_sitelib}/%{pkg_name}/ %changelog * Thu Aug 26 2021 Pavel Filipenský - 2.0.0-1 - Update to version 2.0.0 * https://github.com/bash-lsp/bash-language-server/blob/server-2.0.0/server/CHANGELOG.md - Fixed indentation for node shebang loop * Thu Aug 05 2021 Andreas Schneider - 1.17.0-1 - Initial package