dLobatog/npm2rpm

View on GitHub
bundle.mustache

Summary

Maintainability
Test Coverage
%{?scl:%scl_package nodejs-%{npm_name}}
%{!?scl:%global pkg_name %{name}}

%global npm_name {{{NAME}}}

Name: %{?scl_prefix}{{{RPM_PACKAGE_NAME}}}
Version: {{{VERSION}}}
Release: {{{RELEASE}}}%{?dist}
Summary: {{{SUMMARY}}}
License: {{{LICENSETYPE}}}
Group: Development/Libraries
URL: {{{PROJECTURL}}}
{{#each SOURCES}}
{{{.}}}
{{/each}}
BuildRequires: %{?scl_prefix_nodejs}npm
%if 0%{!?scl:1}
BuildRequires: nodejs-packaging
%endif
BuildArch: noarch
ExclusiveArch: %{nodejs_arches} noarch

Provides: %{?scl_prefix}npm(%{npm_name}) = %{version}
{{#each PROVIDES}}
Provides: bundled(npm({{{name}}})) = {{{version}}}
{{/each}}
AutoReq: no
AutoProv: no

%if 0%{?scl:1}
%define npm_cache_dir npm_cache
%else
%define npm_cache_dir /tmp/npm_cache_%{name}-%{version}-%{release}
%endif

%description
%{summary}

%prep
mkdir -p %{npm_cache_dir}
%{?scl:scl enable %{?scl_nodejs} - << \end_of_scl}
for tgz in %{sources}; do
  echo $tgz | grep -q registry.npmjs.org || npm cache add --cache %{npm_cache_dir} $tgz
done
%{?scl:end_of_scl}

%setup -T -q -a {{{PROVIDES.length}}} -D -n %{npm_cache_dir}

%build
%{?scl:scl enable %{?scl_nodejs} - << \end_of_scl}
npm install --cache-min Infinity --cache %{?scl:../}%{npm_cache_dir} --no-shrinkwrap --no-optional --global-style true %{npm_name}@%{version}
%{?scl:end_of_scl}

%install
mkdir -p %{buildroot}%{nodejs_sitelib}/%{npm_name}
cp -pfr node_modules/%{npm_name}/node_modules %{buildroot}%{nodejs_sitelib}/%{npm_name}
{{#each COPYFILES}}
cp -pfr node_modules/%{npm_name}/{{&.}} %{buildroot}%{nodejs_sitelib}/%{npm_name}
{{/each}}
{{#if BINARIES}}

mkdir -p %{buildroot}%{_bindir}/
{{/if}}
{{#each BINARIES}}
chmod 0755 %{buildroot}%{nodejs_sitelib}/%{npm_name}/{{{this}}}
ln -sf %{nodejs_sitelib}/%{npm_name}/{{{this}}} %{buildroot}%{_bindir}/{{{@key}}}
{{/each}}

%clean
rm -rf %{buildroot} %{npm_cache_dir}

%files
%{nodejs_sitelib}/%{npm_name}
{{#each BINARIES}}
%{_bindir}/{{{@key}}}
{{/each}}
{{#each LICENSEFILES}}
%license node_modules/%{npm_name}/{{{.}}}
{{/each}}
{{#each DOCFILES}}
%doc node_modules/%{npm_name}/{{{.}}}
{{/each}}

%changelog