From 5be31fb45656731544b174e38aefdcaebd349d31 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Sat, 7 Aug 2021 09:12:31 +0200 Subject: [PATCH] The big bang! --- .gitignore | 2 + nodejs-bash-language-server.spec | 82 ++++++++++++++++++++++++++++++++ sources | 2 + 3 files changed, 86 insertions(+) create mode 100644 .gitignore create mode 100644 nodejs-bash-language-server.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cb38d52 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/bash-language-server-1.17.0-vendor.tar.xz +/bash-language-server-1.17.0.tar.gz diff --git a/nodejs-bash-language-server.spec b/nodejs-bash-language-server.spec new file mode 100644 index 0000000..04d9efa --- /dev/null +++ b/nodejs-bash-language-server.spec @@ -0,0 +1,82 @@ +%{?nodejs_default_filter} + +%define pkg_name bash-language-server + +Name: nodejs-bash-language-server +Version: 1.17.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 + +# 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 +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/ + +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 05 2021 Andreas Schneider - 1.17.0-1 +- Initial package diff --git a/sources b/sources new file mode 100644 index 0000000..b3c9e19 --- /dev/null +++ b/sources @@ -0,0 +1,2 @@ +SHA512 (bash-language-server-1.17.0-vendor.tar.xz) = 621880d3d1343bb6f147f5dfd295e46e9b1a1a2dc7f6d193ed865fed72213006bd6d8793553318ed120cbc86c4c2ffa1f2b5f6ecb760bf6c6f051220915fcf4c +SHA512 (bash-language-server-1.17.0.tar.gz) = 3d16a7de09d54ca2cdd3ae6a1bd7d88e843d37e662859d85bb365d3ed90d1ad9bca17767d8c42c80f9777a799cd38744a5d3b2cf47d6491c37118f1265ce522c