File npm.spec of Package npm

Name:           npm

Version:        1.0
Release:        1

Summary:        A package manager for node.js
Group:          Development/Libraries/Other
License:        MIT
URL:            http://npmjs.org/

%define realversion 1.0

Source0:        npm-%{version}.tar.gz
BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root

BuildRequires:	nodejs
Requires:       nodejs
BuildArch:      noarch

%description
NPM is a package manager for node.js.

%prep
%setup -q -n npm-%{version}


%clean
rm -rf %{buildroot}


%build


%install
# control the NPM install locations
cat > /var/tmp/npmrc <<NPMRC 
root = %{buildroot}/usr/lib/nodejs 
binroot = %{buildroot}%{_bindir}
manroot = %{buildroot}%{_mandir}
loglevel = verbose
tmpdir = /var/tmp 
NPMRC
npm_config_userconfig=/var/tmp/npmrc nodejs cli.js install . 
rm -f /var/tmp/npmrc

# Replace NPM manpage symlinks with normal files
buildroot_escaped=`echo '%{buildroot}' | sed -e 's/\\//\\\\\\//g'`
realversion_escaped=`echo '%{realversion}' | sed -e 's/\\//\\\\\\//g'`
mandir_escaped=`echo '%{_mandir}' | sed -e 's/\\//\\\\\\//g'`
rm %{buildroot}%{_mandir}/man1/*
mv %{buildroot}/usr/lib/nodejs/.npm/npm/%{realversion}/package/man1/npm.1 %{buildroot}%{_mandir}/man1/npm.1
ls -l %{buildroot}/usr/lib/nodejs/.npm/npm/%{realversion}/package/man1/*.1 | sed -e "s/.*\/\(.*\)$/cp ${buildroot_escaped}\/usr\/lib\/nodejs\/.npm\/npm\/${realversion_escaped}\/package\/man1\/\1 ${buildroot_escaped}${mandir_escaped}\/man1\/npm-\1/g" | bash

rm %{buildroot}%{_bindir}/npm
mv %{buildroot}%{_bindir}/npm@%{realversion} %{buildroot}%{_bindir}/npm

rm -r %{buildroot}/usr/lib/nodejs/npm
mv %{buildroot}/usr/lib/nodejs/npm@%{realversion} %{buildroot}/usr/lib/nodejs/npm

rm -f %{buildroot}/usr/lib/nodejs/.npm/npm/%{realversion}/package/.gitignore
chmod -x %{buildroot}/usr/lib/nodejs/.npm/npm/%{realversion}/package/test/packages/bindir/test.js

# configure NPM defaults in ../libs/utils/default-config.js for Fedora/Redhat/Centos platforms
sed -i -e 's|\(^  , root : \)\(.*\)|\1"/usr/lib/nodejs"|' -e 's|\(^  , tmproot : \)\(.*\)|\1"/var/tmp"|' -e 's|\(^  , manroot : \)\(.*\)|\1"/usr/share/man"|' -e 's|\(^  , binroot : \)\(.*\)|\1"/usr/bin"|' -e 's|\(^  , globalconfig : \)\(.*\)|\1"/etc/npmrc"|'  %{buildroot}/usr/lib/nodejs/.npm/npm/%{realversion}/package/lib/utils/default-config.js

# fix up hashbangs to up /usr/bin/nodejs
sed -i -e 's|/usr/bin/env node|/usr/bin/nodejs|' %{buildroot}/usr/bin/npm
sed -i -e 's|/usr/bin/env node|/usr/bin/nodejs|' %{buildroot}/usr/lib/nodejs/.npm/npm/%{realversion}/package/lib/utils/write-shim.js
sed -i -e 's|/usr/bin/env node|/usr/bin/nodejs|' %{buildroot}/usr/lib/nodejs/.npm/npm/%{realversion}/package/cli.js

# add an /etc/npmrc config file
mkdir -p %{buildroot}/etc
cat > %{buildroot}/etc/npmrc <<NPMRC 
root = /usr/lib/nodejs
binroot = /usr/bin
manroot = /usr/share/man
tmproot = /var/tmp
loglevel = error
NPMRC

%files
%defattr(-,root,root,-)
%exclude /usr/lib/nodejs/.npm/.cache
%dir /usr/lib/nodejs/npm
/usr/lib/nodejs/npm/*
%dir /usr/lib/nodejs/.npm
/usr/lib/nodejs/.npm/*
%attr(755,root,root) %{_bindir}/npm
%{_mandir}/man1/*
/etc/npmrc


%changelog
* Sun May 30 2011 Isaac Fischer <xwaver@gmail.com> 1.0-1 
- 1.0 from git
* Sat Dec 18 2010 Finnbarr P. Murphy <fpm@fpmurphy.com> 0.2.2-1 
- Initial RPM packaging of NPM, v0.2.2-1 included
openSUSE Build Service is sponsored by