SHA256
10
0
forked from pool/lua-busted
Files
lua-busted/lua-busted.spec
2024-10-12 18:17:43 +00:00

155 lines
5.6 KiB
RPMSpec

#
# spec file for package lua-busted
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2012 Togan Muftuoglu toganm@opensuse.org
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define flavor @BUILD_FLAVOR@
%define mod_name busted
%define lua_value %(echo "%{flavor}" |sed -e 's:lua::')
%define upversion 2.0.0
Version: 2.0.0
Release: 0
Summary: Unit testing framework with a focus on being easy to use
License: MIT
Group: Development/Languages/Other
URL: https://lunarmodules.github.io/busted/
Source: https://github.com/lunarmodules/%{mod_name}/archive/v%{upversion}.tar.gz#/%{mod_name}-%{upversion}.tar.gz
BuildRequires: %{flavor}-cliargs >= 3.0-1
BuildRequires: %{flavor}-devel
# For testing
# BuildRequires: %%{flavor}-copas
BuildRequires: %{flavor}-lua-ev
BuildRequires: %{flavor}-luafilesystem
BuildRequires: %{flavor}-luassert >= 1.7.8-0
BuildRequires: %{flavor}-luasystem >= 0.2.0-0
BuildRequires: %{flavor}-luaterm >= 0.1-1
BuildRequires: %{flavor}-mediator_lua >= 1.1-0
BuildRequires: %{flavor}-moonscript
BuildRequires: %{flavor}-penlight >= 1.3.2-2
BuildRequires: %{flavor}-say >= 1.3-0
BuildRequires: curl
BuildRequires: lua-macros
BuildRequires: openssl
BuildRequires: unzip
Requires: %{flavor}
Requires: %{flavor}-cliargs
Requires: %{flavor}-dkjson >= 2.1.0-0
Requires: %{flavor}-lua-ev
Requires: %{flavor}-luafilesystem
Requires: %{flavor}-luassert >= 1.7.8-0
Requires: %{flavor}-luasystem >= 0.2.0-0
Requires: %{flavor}-luaterm >= 0.1-1
Requires: %{flavor}-mediator_lua >= 1.1-0
Requires: %{flavor}-penlight
Requires: %{flavor}-say >= 1.3-0
Requires: curl
Requires: openssl
Requires: unzip
Requires(post): update-alternatives
Requires(postun): update-alternatives
BuildArch: noarch
%lua_provides
%if "%{flavor}" == ""
Name: lua-%{mod_name}
ExclusiveArch: do_not_build
%else
Name: %{flavor}-%{mod_name}
%endif
%description
busted is a unit testing framework with a focus on being easy to
use. busted works with lua >= 5.1, moonscript, terra, and LuaJIT
>= 2.0.0.
busted test specs read naturally without being too verbose. You
can even chain asserts and negations, such as assert.not.equals.
Nest blocks of tests with contextual descriptions using describe,
and add tags to blocks so you can run arbitrary groups of tests.
An extensible assert library allows you to extend and craft your
own assert functions specific to your case with method chaining.
A modular output library lets you add on your own output format,
along with the default pretty and plain terminal output, JSON
with and without streaming, and TAP-compatible output that allows
you to run busted specs within most CI servers. You can even
register phrases for internationaliation with custom or built-in
language packs.
%prep
%setup -q -n %{mod_name}-%{version}
sed -i 's|^#!%{_bindir}/env lua|#!%{_bindir}/lua%{lua_version}|' bin/busted
%build
/bin/true
%install
install -v -m 0755 -p -d %{buildroot}%{lua_noarchdir}
cp -r -p -v busted %{buildroot}%{lua_noarchdir}
install -v -D -m 0755 -p bin/busted %{buildroot}%{_bindir}/busted-%{lua_version}
# update-alternatives
mkdir -p %{buildroot}%{_sysconfdir}/alternatives/
touch %{buildroot}%{_sysconfdir}/alternatives/busted
ln -sf %{_sysconfdir}/alternatives/busted \
%{buildroot}%{_bindir}/busted
# shell completions
install -v -D -m 0644 -p completions/bash/busted.bash \
%{buildroot}%{_datadir}/bash-completion/completions/busted-%{lua_version}
install -v -D -m 0644 -p completions/zsh/_busted \
%{buildroot}%{_datadir}/zsh/vendor-completions/_busted-%{lua_version}
touch %{buildroot}%{_sysconfdir}/alternatives/busted.bash
touch %{buildroot}%{_sysconfdir}/alternatives/busted.zsh
ln -sf %{_sysconfdir}/alternatives/busted.bash \
%{buildroot}%{_datadir}/bash-completion/completions/busted
ln -sf %{_sysconfdir}/alternatives/busted.zsh \
%{buildroot}%{_datadir}/zsh/vendor-completions/_busted
%post
%{_sbindir}/update-alternatives --force \
--install %{_bindir}/busted busted %{_bindir}/busted-%{lua_version} %{lua_value} \
--slave %{_datadir}/bash-completion/completions/busted busted.bash \
%{_datadir}/bash-completion/completions/busted-%{lua_version} \
--slave %{_datadir}/zsh/vendor-completions/_busted busted.zsh \
%{_datadir}/zsh/vendor-completions/_busted-%{lua_version}
%postun
if [ ! -f %{_bindir}/busted-%{lua_version} ] ; then
%{_sbindir}/update-alternatives --remove busted %{_bindir}/busted-%{lua_version}
fi
%check
bin/busted -v spec
%files
%license LICENSE
%doc README.md TODO.md CONTRIBUTING.md
%ghost %{_sysconfdir}/alternatives/busted
%ghost %{_sysconfdir}/alternatives/busted.bash
%ghost %{_sysconfdir}/alternatives/busted.zsh
%{_bindir}/busted
%{_bindir}/busted-%{lua_version}
%{lua_noarchdir}/busted
%{_datadir}/bash-completion/completions/busted
%{_datadir}/bash-completion/completions/busted-%{lua_version}
%dir %{_datadir}/zsh
%dir %{_datadir}/zsh/vendor-completions
%{_datadir}/zsh/vendor-completions/_busted
%{_datadir}/zsh/vendor-completions/_busted-%{lua_version}
%changelog