bbc/speculate

View on GitHub
templates/spec.hbs

Summary

Maintainability
Test Coverage
%define debug_package %{nil}
%define name {{name}}
%define version {{version}}
%define release {{release}}
%define buildroot %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)

Name: %{name}
Version: %{version}
Release: %{release}
Summary: {{name}}

Group: Installation Script
License: {{license}}
Source: %{name}.tar.gz
BuildRoot: %{buildroot}
Requires: nodejs{{#if nodeVersion}} {{{nodeVersion}}}{{/if}}
{{#requires}}
Requires: {{{.}}}
{{/requires}}
BuildRequires: nodejs{{#if nodeVersion}} {{{nodeVersion}}}{{/if}}
{{#buildRequires}}
BuildRequires: {{{.}}}
{{/buildRequires}}
AutoReqProv: no

%description
{{description}}

%prep
%setup -q -c -n %{name}

%build
{{#prune}}
NODE_ENV=production npm prune
{{/prune}}
{{#rebuild}}
npm rebuild
{{/rebuild}}

%pre
getent group {{username}} >/dev/null || groupadd -r {{username}}
getent passwd {{username}} >/dev/null || useradd -r -g {{username}} -G {{username}} -d /usr/lib/{{name}} -m -s /sbin/nologin -c "{{username}}" {{username}}

%install
mkdir -p %{buildroot}/usr/lib/{{name}}
cp -r ./ %{buildroot}/usr/lib/{{name}}
mkdir -p %{buildroot}/var/log/{{name}}

%post
systemctl enable /usr/lib/{{name}}/{{name}}.service
{{#postInstallCommands}}
{{{.}}}
{{/postInstallCommands}}

%clean
rm -rf %{buildroot}

%files
%defattr(644, {{username}}, {{username}}, 755)
/usr/lib/{{name}}
/var/log/{{name}}
{{#hasExecutableFiles}}
{{#executableFiles}}
%attr(755, {{../username}}, {{../username}}) {{.}}
{{/executableFiles}}
{{/hasExecutableFiles}}