Skip to content

Commit

Permalink
Fix sass#775: Introduce SASS_BINARY_SITE environment variable
Browse files Browse the repository at this point in the history
Provide ability to locally mirror node-sass
binaries for various versions and platforms.

SASS_BINARY_SITE needs to be an URL pointing to
a collection of files organized like the Github
repository.

If SASS_BINARY_SITE is set to

 http://myhost:8080/local/node-sass-bin/

then

 http://myhost:8080/local/node-sass-bin/v3.0.0-beta.5/freebsd-x64-14_binding.node

should point to the FreeBSD 64 bit binary for node 0.12.0

The URL can be also specified as the --sass-binary-site
commandline option or in the package.json:

 "nodeSassConfig": {
   "binarySite": <url>
 }

While here, fix operator precedence for --sass-binary-url.
  • Loading branch information
saper committed Apr 9, 2015
1 parent bccad58 commit a371de9
Showing 1 changed file with 31 additions and 4 deletions.
35 changes: 31 additions & 4 deletions lib/extensions.js
Expand Up @@ -50,7 +50,7 @@ function getRuntimeInfo() {
/**
* Get binary name.
* If environment variable SASS_BINARY_NAME or
* process aurgument --binary-name is provide,
* process argument --binary-name is provided,
* return it as is, otherwise make default binary
* name: {platform}-{arch}-{v8 version}.node
*
Expand Down Expand Up @@ -81,16 +81,43 @@ function getBinaryName() {
* is set, return that path. Otherwise make
* path using current release version and
* binary name.
*
* Optionally, the default URL can be replaced by
* setting the environment variable SASS_BINARY_SITE
* (or commandline option --sass-binary-site)
* which should point to the mirror of the repository
* laid out as follows:
*
* SASS_BINARY_SITE/
*
* v3.0.0-beta.4
* v3.0.0-beta.4/freebsd-x64-14_binding.node
* v3.0.0-beta.5
* v3.0.0-beta.5/freebsd-ia32-11_binding.node
* v3.0.0-beta.5/freebsd-x64-42_binding.node
* v3.0.0-beta.5/freebsd-x64-14_binding.node
* v3.0.0-beta.5/freebsd-x64-11_binding.node
* v3.0.0-beta.5/freebsd-ia32-43_binding.node
* v3.0.0-beta.5/freebsd-ia32-42_binding.node
* v3.0.0-beta.5/freebsd-ia32-14_binding.node
* v3.0.0-beta.5/freebsd-x64-43_binding.node
*
* ... etc. for all supported versions and platforms
*
* @api private
*/

function getBinaryUrl() {
return flags['--sass-binary-url'] ||
package.nodeSassConfig ? package.nodeSassConfig.binaryUrl : null ||
(package.nodeSassConfig ? package.nodeSassConfig.binaryUrl : null) ||
process.env.SASS_BINARY_URL ||
['https://github.com/sass/node-sass/releases/download/v',
package.version, '/', sass.binaryName].join('');
[
(
flags['--sass-binary-site'] ||
(package.nodeSassConfig ? package.nodeSassConfig.binarySite : null) ||
process.env.SASS_BINARY_SITE || 'https://github.com/sass/node-sass/releases/download'
), 'v' + package.version, sass.binaryName
].join('/');
}

/**
Expand Down

0 comments on commit a371de9

Please sign in to comment.