Skip to content

Commit

Permalink
Update installed node directory structure to match what the node dist…
Browse files Browse the repository at this point in the history
… does
  • Loading branch information
datallah committed Sep 9, 2016
1 parent bd624c1 commit dd2c5e4
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 22 deletions.
27 changes: 24 additions & 3 deletions src/main/groovy/com/moowork/gradle/node/task/SetupTask.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,30 @@ class SetupTask

private void unpackNodeTarGz()
{
this.project.copy {
from this.project.tarTree( getNodeTarGzFile() )
into getNodeDir().parent
if ( this.variant.exeDependency )
{
//Remap lib/node_modules to node_modules (the same directory as node.exe) because that's how the zip dist does it
this.project.copy {
from this.project.tarTree( getNodeTarGzFile() )
into this.variant.nodeBinDir
eachFile {
def m = it.path =~ /^.*?[\\/]lib[\\/](node_modules.*$)/
if (m.matches()) {
// remap the file to the root
it.path = m.group(1)
} else {
it.exclude()
}
}
includeEmptyDirs = false
}
}
else
{
this.project.copy {
from this.project.tarTree( getNodeTarGzFile() )
into getNodeDir().parent
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,19 +28,20 @@ class VariantBuilder
def variant = new Variant()
variant.windows = platformHelper.isWindows()
variant.nodeDir = getNodeDir( osName, osArch )
variant.nodeBinDir = new File( variant.nodeDir, 'bin' )

if ( variant.windows )
{
variant.nodeBinDir = variant.nodeDir
variant.tarGzDependency = getTarGzDependency( 'linux', 'x86' )
variant.exeDependency = getExeDependency()
variant.npmDir = getNpmDir( 'linux', 'x86' )
variant.npmDir = new File( variant.nodeBinDir, 'node_modules' )
variant.nodeExec = new File( variant.nodeBinDir, 'node.exe' ).absolutePath
}
else
{
variant.nodeBinDir = new File( variant.nodeDir, 'bin' )
variant.tarGzDependency = getTarGzDependency( osName, osArch )
variant.npmDir = getNpmDir( osName, osArch )
variant.npmDir = new File( variant.nodeDir, 'lib/node_modules' )
variant.nodeExec = new File( variant.nodeBinDir, 'node' ).absolutePath
}

Expand Down Expand Up @@ -89,10 +90,4 @@ class VariantBuilder
def dirName = "node-v${version}-${osName}-${osArch}"
return new File( this.ext.workDir, dirName )
}

private File getNpmDir( final String osName, final String osArch )
{
def nodeDir = getNodeDir( osName, osArch )
return new File( nodeDir, 'lib/node_modules' )
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,10 @@ class VariantBuilderTest
variant.tarGzDependency == 'org.nodejs:node:0.11.1:linux-x86@tar.gz'
variant.nodeDir.toString().endsWith(NODE_BASE_PATH + nodeDir)
variant.nodeBinDir.toString().endsWith(NODE_BASE_PATH + nodeDir + PS + 'bin')
variant.nodeExec.toString().endsWith(NODE_BASE_PATH + nodeDir + PS + "bin${PS}node.exe")
variant.npmDir.toString().endsWith(NODE_BASE_PATH + "node-v0.11.1-linux-x86${PS}lib${PS}node_modules")
variant.npmScriptFile.toString().endsWith(
NODE_BASE_PATH + "node-v0.11.1-linux-x86${PS}lib${PS}node_modules${PS}npm${PS}bin${PS}npm-cli.js")
variant.nodeBinDir.toString().endsWith(NODE_BASE_PATH + nodeDir)
variant.nodeExec.toString().endsWith(NODE_BASE_PATH + nodeDir + PS + "node.exe")
variant.npmDir.toString().endsWith(NODE_BASE_PATH + nodeDir + PS + "node_modules")
variant.npmScriptFile.toString().endsWith(NODE_BASE_PATH + nodeDir + PS + "node_modules${PS}npm${PS}bin${PS}npm-cli.js")
where:
osArch | nodeDir | exeDependency
Expand Down Expand Up @@ -83,11 +82,10 @@ class VariantBuilderTest
variant.tarGzDependency == 'org.nodejs:node:4.0.0:linux-x86@tar.gz'
variant.nodeDir.toString().endsWith(NODE_BASE_PATH + nodeDir)
variant.nodeBinDir.toString().endsWith(NODE_BASE_PATH + nodeDir + PS + 'bin')
variant.nodeExec.toString().endsWith(NODE_BASE_PATH + nodeDir + PS + "bin${PS}node.exe")
variant.npmDir.toString().endsWith(NODE_BASE_PATH + "node-v4.0.0-linux-x86${PS}lib${PS}node_modules")
variant.npmScriptFile.toString().endsWith(
NODE_BASE_PATH + "node-v4.0.0-linux-x86${PS}lib${PS}node_modules${PS}npm${PS}bin${PS}npm-cli.js")
variant.nodeBinDir.toString().endsWith(NODE_BASE_PATH + nodeDir)
variant.nodeExec.toString().endsWith(NODE_BASE_PATH + nodeDir + PS + "node.exe")
variant.npmDir.toString().endsWith(NODE_BASE_PATH + nodeDir + PS + "node_modules")
variant.npmScriptFile.toString().endsWith(NODE_BASE_PATH + nodeDir + PS + "node_modules${PS}npm${PS}bin${PS}npm-cli.js")
where:
osArch | nodeDir | exeDependency
Expand Down

0 comments on commit dd2c5e4

Please sign in to comment.