Skip to content

Instantly share code, notes, and snippets.

@alekzonder
Last active December 27, 2016 08:53
Show Gist options
  • Save alekzonder/75d5a683d07adc0f4751951026148a46 to your computer and use it in GitHub Desktop.
Save alekzonder/75d5a683d07adc0f4751951026148a46 to your computer and use it in GitHub Desktop.
install npm package to directory
#!/bin/bash
# wget "https://gist.githubusercontent.com/alekzonder/75d5a683d07adc0f4751951026148a46/raw" -O /usr/local/bin/install_package && chmod +x /usr/local/bin/install_package
name=$1
releasesDir="/data/releases"
projectsDir="/data/projects"
tmpDir="/data/tmp"
if [ -z "$name" ]; then
echo 'no name'
exit 1
fi
version=$2
if [ -z "$version" ]; then
version=`npm v $name version`
fi
releasesProjectDir="$releasesDir/$name"
tmpProjectDir="$tmpDir/$name"
mkdir -p "$releasesProjectDir"
mkdir -p "$tmpProjectDir"
tarball=`npm v $name@$version dist.tarball`
cd $releasesProjectDir
wget $tarball -O package.tar.gz
tar xzf package.tar.gz
cd package
npm i --prod
cd ..
mv package $version
rm package.tar.gz
rm -f "$projectsDir/$name"
ln -s $releasesDir/$name/$version $projectsDir/$name
pm2 reload $name
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment