From e4139b4a84397c0fd97a57f327354c1f23618d79 Mon Sep 17 00:00:00 2001 From: Ghislain Seguin Date: Thu, 19 Apr 2012 15:11:21 -0700 Subject: [PATCH] Restored cleanup phase after checkout --- lib/project.js | 12 ------------ server.js | 25 ++++++++++++++++++------- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/lib/project.js b/lib/project.js index d482a2b..dd4f6d8 100644 --- a/lib/project.js +++ b/lib/project.js @@ -26,18 +26,6 @@ function cleanup( project, callback ) { function( next ) { fs.mkdir( compiled, next ); } -// , -// function( next ) { -// var wsDir = getWorkspaceDirSync( project ), -// filterPath; -// for ( filterPath in filters[ wsDir ] ) { -// delete require.cache[ filterPath ]; -// delete filters[ wsDir ][ filterPath ]; -// } -// dependenciesPromises = {}; -// bundlePromises = {}; -// next(); -// } ], callback ); } diff --git a/server.js b/server.js index 87089ea..4806d25 100644 --- a/server.js +++ b/server.js @@ -34,12 +34,16 @@ app.configure('production', function(){ app.use(express.bodyParser()); -//function loadConfig() { -// config = JSON.parse( fs.readFileSync( configFilename, 'utf8' ) ); -//} -// -//loadConfig(); -//fs.watchFile( configFilename, { persistent: true, interval: 500 }, loadConfig); +function afterProjectCheckout( project ) { + var wsDir = project.getWorkspaceDirSync(), + filterPath; + for ( filterPath in filters[ wsDir ] ) { + delete require.cache[ filterPath ]; + delete filters[ wsDir ][ filterPath ]; + } + dependenciesPromises = {}; + bundlePromises = {}; +} app.get( '/', function ( req, res ) { res.send( "

GitHub based AMD web builder

" ); @@ -89,6 +93,7 @@ app.post( '/post_receive', function ( req, res ) { if ( err ) { res.send( err, 500 ); } else { + afterProjectCheckout( project ); res.send( "OK" ); } }); @@ -125,6 +130,7 @@ app.get( '/v1/:owner/:repo/:ref', function ( req, res ) { if ( err ) { res.send( err, 500 ); } else { + afterProjectCheckout( project ); res.send( "OK" ); } } @@ -291,7 +297,6 @@ function buildDependencyMap( project, baseUrl, include ) { } function applyFilter( baseUrl, filter, contents, ext, callback ) { - var filterPath; if ( filter ) { require( path.join( baseUrl, filter ) )( contents, ext, callback ); } else { @@ -555,6 +560,12 @@ app.get( '/v1/bundle/:owner/:repo/:ref/:name?', function ( req, res ) { } digest = shasum.digest( 'hex' ); + if ( filter ) { + // Setting the flag for later clean up + filters[ project.getWorkspaceDirSync() ] = filters[ project.getWorkspaceDirSync() ] || {}; + filters[ project.getWorkspaceDirSync() ][ path.join( baseUrl, filter ) ] = true; + } + if ( mimetype === "application/zip" ) { hash = digest; } else {