%define name {{name}}
%define version {{version}}
%define release {{release}}
%define buildroot %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)

Name: %{name}
Version: %{version}
{{#dist}}
%define dist {{dist}}
Release: %{release}.%{?dist}
{{/dist}}
{{^dist}}
Release: %{release}
{{/dist}}
Summary: {{name}}

Group: Installation Script
License: {{license}}
Source: %{name}.tar.gz
BuildRoot: %{buildroot}
{{#noarch}}
BuildArch: noarch
%global __strip /bin/true
%define __spec_build_post true
{{/noarch}}
Requires: nodejs{{#nodeVersion}} {{{nodeVersion}}}{{/nodeVersion}}
{{#requires}}
Requires: {{.}}
{{/requires}}
{{#buildRequires}}
BuildRequires: {{.}}
{{/buildRequires}}
AutoReqProv: no

%description
{{description}}

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

%build
{{#buildCommands}}
{{.}}
{{/buildCommands}}
{{#prune}}
npm prune --production
{{/prune}}
{{#noarch}}
# skip npm rebuild
{{/noarch}}
{{^noarch}}
npm rebuild
{{/noarch}}

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

%install
mkdir -p %{buildroot}{{installDir}}/{{name}}
cp -r ./* %{buildroot}{{installDir}}/{{name}}

%post
{{#postInstallCommands}}
{{.}}
{{/postInstallCommands}}

%clean
rm -rf %{buildroot}

%files
%defattr(644, {{username}}, {{username}}, 755)
{{installDir}}/{{name}}
{{#hasExecutableFiles}}
%defattr(755, {{username}}, {{username}}, 755)
{{#executableFiles}}
{{.}}
{{/executableFiles}}
{{/hasExecutableFiles}}
